为了使能更加灵活地控制对象的生命周期。从JDK 1.2版本开始,把对象的引用分为4种级别。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
-
强引用(StrongReference)
强引用是级别最高,也是最常用的引用。拥有强引用的对象绝不会被垃圾回收器回收。 -
软引用(SoftReference)
如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。
-
弱引用(WeakReference)
只具有弱引用的对象拥有更短暂的生命周期。在执行gc的时候会被回收。 -
虚引用(PhantomReference)
“虚引用”顾名思义,就是形同虚设,虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。仅用于在发生gc时接收一个系统通知。
网友评论