在WeakHashMap.html的 Javadoc 中,它说
“WeakHashMap 中的每个键对象都间接存储为弱引用的引用。因此,只有在映射内部和外部的弱引用已被垃圾收集器清除后,才会自动删除键。”
进而
请注意,值对象可以通过 WeakHashMap 本身间接引用其键;也就是说,一个值对象可以强引用某个其他键对象,其关联的值对象反过来又强引用第一个值对象的键。
但是在 WeakHashMap 中不应该同时使用 Key 和 Value 的弱引用吗?即如果内存不足,GC 将释放值对象持有的内存(因为在大多数情况下,值对象很可能比键对象占用更多的内存)?
如果 GC 释放 Value 对象,Key 对象也可以释放吗?
基本上,我正在寻找一个 HashMap,它可以在内存不足时减少内存使用量(GC 会在必要时收集值和键对象)。
在Java中可能吗?
谢谢你。