Object o = new Object();
WeakReference<Object> weakReference = new WeakReference<>(o);
o = null;
o = weakReference.get();
Вы можете слабо ссылаться на объект, ссылки на который вы хотите аннулировать.Оно будет доступно (точнее, слабо достижимо ) через weakReference.get()
, если только оно не было очищено GC.
Конечно, оно становится полностью недоступным, если нет ссылок какого-либо вида (сильный/ мягкий / слабый / фантом) относятся к нему.