把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用
强引用(StrongReference)
如果不手动设置成Null,虚拟机是不会回收此内存,就算内存不足也不会回收,哪怕报出OOM
软引用(SoftReference)
在虚拟机内存足够的情况下,扫描到软引用是不会被GC回收的,但是内存不足的情况下也会被GC回收
弱引用(WeakReference)
不管虚拟机内存是否足够,只要被GC扫描到,就会被回收
虚引用(PhantomReference)
形同虚设的引用,不会决定对象的生命周期,很少涉及