2011-01-27 3 views

ответ

1

JVM поддерживает карту всех объектов, на которые делается ссылка. Каждый цикл GC (есть несколько методов GC в java, train, mark и sweep и т. Д.), Весь список ссылок на объекты пересекается (ссылки на объект объекта объекта в стеке, данные находятся в куче) и все ссылки на объекты, которые больше не указаны, отмечены как готовые к сбору мусора/сборку мусора.

Это упрощенный способ понимания ГК, однако большинству разработчиков не нужно знать внутренности процесса GC; но хорошо иметь некоторое понимание.

Вот некоторые ссылки, которые могут вас заинтересовать:

http://chaoticjava.com/posts/how-does-garbage-collection-work/

http://java.sun.com/docs/hotspot/gc1.4.2/

http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html

http://www.oracle.com/technetwork/java/javase/tech/ts-3153-coomes-19899-dsf-150093.pdf#search=%22garbage%20collection%22

Надеется, что это помогает ...

+0

* "JVM поддерживает карту всех ссылочных объектов." * - не совсем. В некоторых случаях GC эффективно * строит * временную карту объектов, скопированных из «старого пространства» в «новое пространство». В другом случае в заголовке объекта есть только бит, указывающий, что на него ссылаются ... и вообще нет карты. –

+0

* «... весь список ссылок на объекты пройден» * - Нет GC, который я когда-либо слышал о сборках или использует список всех ссылок на объекты. –

+0

@ Stephen C Прошу прощения за неправильную информацию. Ваши баллы действительны. «Зак Л», пожалуйста, обратите внимание на исправления Стивена. Спасибо, Стивен. – Ayusman

Смежные вопросы