Мы инициализируем наш главный объект, и он создает новый объект в своем конструкторе. Когда мы уничтожаем главный объект, что происходит с его созданием? - PullRequest
1 голос
/ 21 июня 2019

Я думаю, что заголовок очень специфичен, но вот код, иллюстрирующий вопрос. Кроме того, я понимаю, что агрегация была бы правильным выбором для этого конкретного примера, и, возможно, сам вопрос создает запах ООП; однако, хотя меня интересует ООП, меня больше интересует, как Java здесь обрабатывает уничтожение объектов.

public class SuperMarket
{

    private Cashier mCashier;

    public SuperMarket(...)
    {

        this.mCashier = new Cashier(...);

    }

}

И работает.

listSuperMarkets.add(new SuperMarket(...));

Что происходит здесь, когда нет других ссылок (это может не иметь значения, не уверен при написании этого):

listSuperMarkets.remove(0);

1 Ответ

3 голосов
/ 21 июня 2019

Как упомянул @tkausl, сборщик мусора удалит объект, но если быть более точным, ваш объект будет существовать в куче, пока сборщик мусора не удалит его.

...