首页 > 解决方案 > GC 是否会收集没有引用变量的对象,即使该对象存储在带有 id 键的 HashMap 中?

问题描述

考虑以下内容:我正在创建一个类的新实例并将它们放在具有唯一键的 HashMap 中。对于每个新实例,引用变量保持不变(即只指向新对象而不是旧对象)。我的问题是:键是否可以作为足够好的参考,以便 GC 不会在 HashMap 内收集没有参考变量的对象?或者也许 HashMap 引用就足够了,所以里面的对象对 GC 来说是安全的?这种情况下GC什么时候收集?

标签: java

解决方案


简短的回答:不,它不会被收集。

更长的答案:只要对象是强可达的,它就不会被收集。是否只能间接访问(通过HashMap)并不重要。


推荐阅读