Java对象的强、软、弱、虚引用
对象图
- java.lang.Object
- java.lang.ref.ReferenceQueue
- java.lang.ref.Reference
- java.lang.ref.FinalReference 强引用
- java.lang.ref.SoftReference 软引用
- java.lang.ref.WeakReference 弱引用
- java.lang.ref.PhantomReference 虚引用
强引用
如果一个对象有强引用,那么垃圾回收器绝对不会回收它
| 引用类型 | GC回收时间 | 用途 | 生存时间 |
|---|---|---|---|
| 强引用 | never | 对象的一般状态 | JVM停止运行 |
| 软引用 | 内存不足时 | 对象缓存 | 内存不足时 |
| 弱引用 | GC时 | 对象缓存 | GC后 |
| 虚引用 | unknown | unknown | unknown |