в графе объектов, когда он не связан с ним, ссылка становится недоступной.затем сборщик мусора сканирует эти висящие лишние объекты и удаляет восстановленную выделенную память.
java.lang.ref. {Phantom, Soft, Weak} Ссылка Перечисляет недоступные объекты.Если финализатор запущен, GC уже знает, что он недоступен.
читать о завершении- http://java.sun.com/developer/technicalArticles/javase/finalization/
На языке, имеющем только сильные ссылки, объекты кучи могут быть доступны или недоступны из программы.Набор достижимых объектов определяется набором переменных класса и переменных метода в программе, указывающих на объекты кучи.Этот набор обычно называют корневым набором программы.Объект, на который указывает переменная в корневом наборе программы, достижим.Кроме того, объект может быть косвенно доступен.То есть объект достижим, если на него указывает другой достижимый объект.Такая цепочка ссылок из корневого набора программы на объект кучи называется путем достижимости.Объект может иметь более одного пути достижимости, а также вообще не иметь путей достижимости.Если объект не имеет путей достижимости, он считается мусором и может быть немедленно собран сборщиком мусора.
Объект переходит в недостижимое состояние, когда нет более сильных ссылок на него.Когда объект недоступен, он является кандидатом на сбор.Обратите внимание на формулировку: если объект является кандидатом на сбор, это не означает, что он будет немедленно собранJVM может свободно откладывать сбор данных до тех пор, пока не возникнет непосредственная потребность в памяти, используемой объектом.Важно отметить, что не просто сильная ссылка будет держать объект в памяти.Это должны быть ссылки на эту цепочку из корня сборки мусора.Корни GC - это специальный класс переменных, который включает
Временные переменные в стеке (любого потока) Статические переменные (из любого класса) Специальные ссылки из собственного кода JNI
больше, если вы хотитеhttp://java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html