软引用、弱引用、虚引用介绍

根据jdk-api文档内容记一笔…

根据引用强度(或可达性强弱)从弱到强依次为:
强引用 > 软引用SoftReference<T> > 弱引用WeakReference<T> > 虚引用PhantomReference<T>
每种类型对应于一个不同的可到达性级别。

软引用

JVM保证在抛出OutOfMemoryError之前回收软引用的对象
适用于实现内存敏感的缓存

弱引用

引用对象判定为弱引用(无强引用和无软引用)时会回收对象
适用于实现无法防止其键(或值)被回收的规范化映射(ThreadLocal)

虚引用

在回收器确定其指示对象可另外回收之后,会被加入ReferenceQueue
能检测引用对象可达性的更改
适用于以某种比 Java 终结机制更灵活的方式调度 pre-mortem 清除操作(Cleaner堆外内存回收)

posted @ 2019-04-01 01:10  傅晓芸  阅读(216)  评论(0编辑  收藏  举报