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

参考资料
【WeakHashMap概念和原理以及简单案例】1.一文搞懂工作原理
概念和原理说明
使用了软引用结构,它的对象在垃圾回收时会被删除
注:垃圾回收是优先级非常低的线程,不能被显示调用,当内存不足的时候会启用
下面是的实现原理拆分:
public class WeakHashMap extends AbstractMap implements Map {... ...// 用于存储需要清理的引用对象private final ReferenceQueue queue = new ReferenceQueue<>();... ...// 内部Entry继承自WeakReference,从而有弱引用特性private static class Entry extends WeakReference implements Map.Entry {... ...}... ...// 用于移除内部不用的Entry来释放内存private void expungeStaleEntries() { ... ... }... ...}
原理说明
1.每次GC清理对象后,引用对象被放置到之中
2.每次访问都会调用遍历删除中引用对象
使用案例
WeakHashMap概念和原理以及简单案例

文章插图
1、缓存中使用
由于是弱引用,因此适合在缓存中使用,当内存不足GC的时候,会清理不用的引用达到释放内存的目的
2、不要使用基础类型作为的key
我大概理解的是,基础类型的一定范围不会被回收
原文:.put方法执行的时候i会被封装为类型的,保留了-128到127的缓存 。但是对于int来说范围大很多,因此那些Key