java - ReferenceQueue 中的 WeakReference 是否会自动从队列中删除?

标签 java garbage-collection

我知道对于ReferencesQueue中的PhantomReference,必须自己处理并清空ReferenceQueue。

如果ReferenceQueue中有WeakReferences,WeakReferences会自动从ReferenceQueue中删除吗?

我们使用策略作为终结器的替代方案,如下所述: http://resources.ej-technologies.com/jprofiler/help/doc/indexRedirect.html?http&&&resources.ej-technologies.com/jprofiler/help/doc/helptopics/config/finalizers.html

但我们不希望有另一个线程来从 ReferenceQueue 中删除 PhantomReference。

因此我们使用 Wea​​kReferences 来代替,假设它们会自动从 ReferenceQueue 中删除。这是一个正确的假设吗?谢谢。

最佳答案

是的,你是对的。除非一些古怪的最终代码使它们复活。

这里有一篇很好的文章解释了这种情况:https://weblogs.java.net/blog/enicholas/archive/2006/05/understanding_w.html

关于java - ReferenceQueue 中的 WeakReference 是否会自动从队列中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20407225/

相关文章:

java - Wildfly ejb 独立客户端的 Maven 依赖项条目

java - Spark : Technical terminology for reduce elements on the run-time?

java - 仅具有特定列可选择的 JTable 和/或仅从一列获取数据

java - 无法在 GAE HR 数据存储上启动 Spring MVC 3.0 应用程序,但可以在主/从属上运行

Android ClassLoader 内存泄漏

objective-c - 如何以编程方式确定 Cocoa 插件包的垃圾收集设置?

javascript - JavaScript 中如何触发垃圾回收?

java - 如何在java中使用System.in.read()?

java - H/W 辅助垃圾收集器

java - 未使用的返回值会怎样?