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 |