Объект еще не удален GC - PullRequest
0 голосов
/ 30 декабря 2018

Так что сборщик мусора не удаляет объект немедленно, есть ли способ установить ссылку на объект, который уже имеет право на GC?

Object o = new Object(); o = null; // above object is eligible for GC // now can we retrieve the above object? as it is not destroyed by GC

1 Ответ

0 голосов
/ 30 декабря 2018
Object o = new Object();
WeakReference<Object> weakReference = new WeakReference<>(o);
o = null;

o = weakReference.get();

Вы можете слабо ссылаться на объект, ссылки на который вы хотите аннулировать.Оно будет доступно (точнее, слабо достижимо ) через weakReference.get(), если только оно не было очищено GC.

Конечно, оно становится полностью недоступным, если нет ссылок какого-либо вида (сильный/ мягкий / слабый / фантом) относятся к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...