【问题标题】:How to make weak references in Java?如何在 Java 中进行弱引用?
【发布时间】:2019-07-14 10:58:23
【问题描述】:

让我用以下方式解释它: 你有一个对象 a 持有对对象 b 的引用。 你知道如果只有 a 持有对 b 的引用,那么 b 就不再需要了,应该被 GC 收集。 p>

现在想象一下,a 总是可以访问的

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

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

如果只有 a 对它的引用,我如何让 GC 收集 b?

有什么办法可以做一个被GC忽略的引用(弱引用),这样当满足以上条件时,gc收集b,留下一个空指针到一个?

【问题讨论】:

    标签: java reference garbage-collection weak-references


    【解决方案1】:

    您在问题中使用了“弱引用”标签,这就是答案。 Java 有一个 WeakReference 类来执行此操作,它保存对仍然可以被垃圾回收的对象的引用。如果您拥有WeakReference 的对象被收集,WeakReference 将返回 null。

    【讨论】:

    • 谢谢。我应该删除问题吗?现在对我来说似乎很愚蠢。我认为 java 永远不会有这样的东西,所以我希望 stackoverflow 上的一些 hacky 答案是找到解决方案的唯一方法。
    • 既然很多人不知道WeakReference,不妨把这个问题留给其他人学习。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多