如何在Java中进行弱引用?

时间:2019-07-14 10:58:23

标签: java reference garbage-collection weak-references

让我通过以下方式进行解释: 您有一个对象a,其中包含对对象b的引用。 您知道如果仅a拥有对b的引用,则不再需要 b ,并且应由GC收集

现在想象一下, a始终可以访问

gc意识到可以通过a 来访问 b。

因此, GC将永远不会收集b!

如果只有a引用,我如何使GC收集b?

有什么方法可以创建被GC忽略的引用(弱引用),以便在满足上述条件时, gc收集b,留下空指针到一个?

1 个答案:

答案 0 :(得分:2)

您在问题中使用了标记“弱引用”,这就是答案。 Java为此提供了一个WeakReference类,它包含对仍然可以被垃圾回收的对象的引用。如果收集到您拥有WeakReference的对象,则WeakReference返回null。