java - GC 是否会收集没有引用变量的对象,即使该对象存储在带有 id 键的 HashMap 中?
问题描述
考虑以下内容:我正在创建一个类的新实例并将它们放在具有唯一键的 HashMap 中。对于每个新实例,引用变量保持不变(即只指向新对象而不是旧对象)。我的问题是:键是否可以作为足够好的参考,以便 GC 不会在 HashMap 内收集没有参考变量的对象?或者也许 HashMap 引用就足够了,所以里面的对象对 GC 来说是安全的?这种情况下GC什么时候收集?
解决方案
简短的回答:不,它不会被收集。
更长的答案:只要对象是强可达的,它就不会被收集。是否只能间接访问(通过HashMap
)并不重要。
推荐阅读
- java - 使用广播接收器在重启时显示通知
- javascript - 试图让我的文本颜色永远交替闪烁,但不使用无限循环,有没有更好的方法?
- php - 每个 HTML 表格行的 PHP 交替颜色
- angular - “void”类型上不存在离子属性“订阅”
- airflow - 如何在 celery 任务中使用 ray?
- apache-spark - 在 pyspark 中执行 NLTK
- android - How do I get old activity window
- python - discord.py bot 和 webhook 框消息
- python - 如果在该实例中写入 csv 文件,如何不读取它?
- azure - Azure 帮助:你的登录被阻止