Java的引用(强软弱虚)
Java中引用相关的类
类 | 名 | 说明 |
---|---|---|
ReferenceQueue | 引用队列 | 与某个引用类绑定,当引用死亡后会进入这个队列 对象标记为垃圾(并不代表回收了)后或虚引用的对象被回收后,会加入到 引用队列 |
HardReference | 强引用 | 任何Object obj = new Object()建立起来的引用都是强引用 在obj指向另一个对象或者null之前,该对象不会被GC |
WeakReference | 弱引用 | 不会阻止GC回收弱引用存在的对象(仅存在弱引用) |
SoftReference | 软引用 | 不会阻止对象的GC,但回收会延迟到接近OOM时才执行 |
PhantomReference | 虚引用 | 无法通过虚引用获取到引用的对象,被引用对象被回收后该引用会进入引用队列 |
WeakHashMap
WeakHashMap是弱键
实现的哈希表
。目的就是:实现对键值对
的动态回收。当弱键
不再被使用到时,GC会回收它,对应的键值对删除。
WeakHashMap使用场景
- 分代缓存:tomcat中的使用示例参考