GC尚未删除的对象

时间:2018-12-30 11:02:51

标签: java garbage-collection

所以垃圾收集器不会立即删除对象,有什么方法可以设置对已经可以使用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 :(得分:1)

Object o = new Object();
WeakReference<Object> weakReference = new WeakReference<>(o);
o = null;

o = weakReference.get();

您可以引用要取消引用的对象。除非已被GC清除,否则它将通过weakReference.get()可用(更确切地说,weakly reachable)。

当然,如果没有任何形式的引用(强/软/弱/幻像)与它无关,那么它将变得完全不可访问。