首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java参考资料

Java参考资料
EN

Stack Overflow用户
提问于 2009-12-22 06:44:24
回答 5查看 2.2K关注 0票数 3

有没有办法找到一个对象的所有引用(在Java中)?

我有一个对象的缓存,并希望定期扫描它,看看删除对象是否会导致它被销毁。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-12-22 07:15:39

您可能想看看Java提供的不同引用类型:strong, soft, weak, and phantom

对于缓存,您通常会将引用包装到WeakReference或SoftReference中,一旦没有更多的强引用,就让对象被收集。

票数 6
EN

Stack Overflow用户

发布于 2009-12-22 06:59:42

我有一个对象缓存

考虑使用WeakHashMap而不是HashMap来获取它们。

以下是API的摘录:

一个基于哈希表的Map实现,具有弱密钥。当 WeakHashMap 中的条目不再是通常使用的时,该条目将被自动删除。更准确地说,给定键的映射不会阻止该键被垃圾收集器丢弃,也就是说,使其成为可终结键、终结键,然后回收。当一个键被丢弃时,它的条目将有效地从映射中删除,因此这个类的行为与其他Map实现略有不同。

票数 5
EN

Stack Overflow用户

发布于 2009-12-22 06:51:45

没有一种发布的方式可以公开这样的信息。让语言来做垃圾收集,JVM供应商的工作就是按照语言的指定来实现它。

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

https://stackoverflow.com/questions/1943122

复制
相关文章

相似问题

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