Создание объекта без присвоения ссылки

209
14 апреля 2018, 21:50

Есть класс, в конструкторе которого создается асинхронный слушающий сокет. Вся работа с сокетом реализована в этом классе и внешняя ссылка на этот класс не нужна.

Вопрос, на сколько корректен такой способ создания объекта класса

new Server();

т.е. без присвоения созданного экземпляра переменной. Не прибьет ли такой объект сборщик мусора?

Answer 1

При вызове каждого метода создаётся стековый кадр. Операция new поместит ссылку на объект в стековый кадр того метода, который её вызвал. Даже без присвоения этой ссылки переменной, она будет сохраняться в стеке до тех пор, пока метод не закончится и стековый кадр не будет уничтожен. А сборщик мусора не трогает те объекты, на которые есть ссылки в стеке.

READ ALSO
Приложение не видит USB-OTG

Приложение не видит USB-OTG

Проблема - Как заставить мои приложения увидеть USB флешки-мышки? (Вопрос НЕ о подключении к компьютеру)

180
Наследование по ArrayList

Наследование по ArrayList

Хочу создать класс, наследуемый по классу ArrayList и переопределить его методы ( допустим добавить в методadd() счётчик, который будет подсчитывать...

143