Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Сборщик мусора


Автор: Sherst 24.3.2006, 21:43
Про gc() прочитал следующее, что JVM в случае нехватки памяти запускает gc() автоматически в отдельном потоке с низким приоритетом. С ростом используемой приложением памяти приоритет gc() увеличивается.
Вопрос такой: как работает gc() с мертвыми объектами.

Автор: LSD 24.3.2006, 21:53
При нехватке памяти он запускается на автомате. И пока работает GC, все остальные потоки стоят.


Цитата(Sherst @ 24.3.2006, 21:43 Найти цитируемый пост)
Вопрос такой: как работает gc() с мертвыми объектами.

Помечает занимаемую ими память как свободную, предварительно вызывая метод finalize().

Автор: Sherst 24.3.2006, 21:59
А если я напишу такой код

Код

Object o1=new Object();
Object o2=o1;
o1=null;


В этом случае ссылка на объект сохранилась в o2 и как сборщик мусора удалит такой
объект?

Автор: LSD 24.3.2006, 22:02
Цитата(Sherst @ 24.3.2006, 21:59 Найти цитируемый пост)
В этом случае ссылка на объект сохранилась в o2 и как сборщик мусора удалит такой объект?

Нет. Пока на объект есть хоть одна ссылка, объект не будет удален.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)