WeakHashMap存在的原因

垃圾回收器跟踪活动的对象,只要映射表对象(Map)是活动的,其中的所有桶也是活动的。因此,需要由程序员负责长期存活的映射表中删除那些无用的值。或者使用WeakHashMap完成这件事。当对键的唯一引用来自散列表条目时,这一数据结构将于垃圾回收器协同工作一起删除键/值对。

下面是这种机制的内部运行情况。WeakHashMap使用弱引用(weak references)保存键。WeakReference对象将引用保存到另外一个对象中,在这里,就是散列表键。对于这种类型的对象,垃圾回收器用一种特有的方式进行处理。通常,如果垃圾回收器发现某个特定的对象已经没有人使用它,但要将引用这个对象的弱引用放入到队列中。WeakHashMap将周期性地检查队列,以便找出新添加的弱引用。一个弱引用进入队列意味着这个键不再被别人使用,并且已经被收集起来。于是,WeakHashMap将删除对应的条目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值