所以垃圾收集器不会立即删除对象,有什么方法可以设置对已经可以使用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
答案 0 :(得分:1)
Object o = new Object();
WeakReference<Object> weakReference = new WeakReference<>(o);
o = null;
o = weakReference.get();
您可以弱引用要取消引用的对象。除非已被GC清除,否则它将通过weakReference.get()
可用(更确切地说,weakly reachable)。
当然,如果没有任何形式的引用(强/软/弱/幻像)与它无关,那么它将变得完全不可访问。