首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Java的ReferenceQueue

使用Java的ReferenceQueue
EN

Stack Overflow用户
提问于 2013-01-22 10:17:20
回答 4查看 21.2K关注 0票数 26

SoftReferenceWeakReference真的只在作为实例变量创建时才有帮助吗?在方法作用域中使用它们有什么好处吗?

另一个重要的部分是ReferenceQueue。除了能够跟踪哪些引用被确定为垃圾之外,是否可以使用Reference.enqueue()强制注册对象以进行垃圾收集?

例如,是否值得创建一个在对象中占用大量内存资源(由强引用持有)的方法,并创建引用来将它们排入队列?

代码语言:javascript
复制
Object bigObject;
public void dispose() {
    ReferenceQueue<Object> queue = new ReferenceQueue<Object>();
    WeakReference<Object> ref = new WeakReference<Object>(bigObject, queue);
    bigObject = null;
    ref.enqueue();
}

(假设本例中的对象表示一个使用大量内存的对象类型……就像BufferedImage之类的东西)

这有什么实际效果吗?或者这只是一种代码的浪费?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14450538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档