WeakHashMap

 

使用keyObj 生成 weak_key 作为 map 里存储的key, 这样 keyObj对象可以随时被回收;

但是这样的话,key 对应的value 还在 map 中,所以value 不能自由回收;

所以weak_key 关联 ReferenceQueue, 这样 keyObj被回收后, map 可以检测到, 

然后在适当的时候 把 weak_key 和 value 移除 !


所以WeakHashMap 的关键点 在于 Weak key reference  及其关联的 reference queue 。

你可能感兴趣的:(WeakHashMap)