【发布时间】:2010-03-18 21:19:40
【问题描述】:
在WeakHashMap.html的Javadoc中,它说
"WeakHashMap 中的每个关键对象都是 间接存储为 弱参考。因此,一个密钥将 只有在之后才会自动删除 对它的弱引用,都在里面 在地图之外,已经 被垃圾收集器清除。”
然后
请注意,值对象可能会引用 通过 WeakHashMap 本身;也就是一个值 对象可能强烈引用某些 其他关联的关键对象 反过来,值对象强烈引用 到第一个值对象的键。
但是在WeakHashMap中不应该同时使用Key和Value吗? 即如果内存不足,GC 将释放值对象持有的内存(因为在大多数情况下,值对象很可能比键对象占用更多的内存)?
如果 GC 释放 Value 对象,Key 对象也可以释放?
基本上,我正在寻找一个 HashMap,它会在内存不足时减少内存使用(GC 会在必要时收集值和键对象)。
在 Java 中可以吗?
谢谢。
【问题讨论】:
标签: java garbage-collection weakhashmap