首页 >> 大全

WeakHashMap概念和原理以及简单案例

2023-09-17 大全 30 作者:考证青年

参考资料

1.一文搞懂工作原理

概念和原理说明

使用了软引用结构,它的对象在垃圾回收时会被删除

注:垃圾回收是优先级非常低的线程,不能被显示调用,当内存不足的时候会启用

下面是 的实现原理拆分:

public class WeakHashMap<K,V> extends AbstractMap<K,V> implements Map<K,V> {... ...// 用于存储需要清理的引用对象private final ReferenceQueue<Object> queue = new ReferenceQueue<>();... ...// 内部Entry继承自WeakReference,从而有弱引用特性private static class Entry<K,V> extends WeakReference<Object> implements Map.Entry<K,V> {... ...}... ...// 用于移除内部不用的Entry来释放内存private void expungeStaleEntries() { ... ... }... ...
}

原理说明

1.每次GC清理对象后,引用对象被放置到 之中

2.每次访问 都会调用 遍历删除 中引用对象

使用案例

案例的概念_案例的基本元素_

1、缓存中使用

由于 是弱引用,因此适合在缓存中使用,当内存不足GC的时候,会清理不用的引用达到释放内存的目的

2、不要使用基础类型作为的key

我大概理解的是,基础类型的一定范围不会被回收

原文:.put方法执行的时候i会被封装为类型的,保留了-128到127的缓存。但是对于int来说范围大很多,因此那些Key

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了