java的引用类型
强引用(StrongReference)
软引用(SoftReference)
弱引用(WeakReference)
虚引用(PhantomReference)
强引用(StrongReference)
开发中最常用的引用类型,GC不会回收该类型的实例对象。
软引用(SoftReference)
如果一个对象只有软引用,当内存不足的时候,GC会回收该对象。
Object softReferencObj = new Object();
SoftReference softReference = new SoftReference(softReferencObj);
使用场景:
缓存的图片信息,可以使用软引用,内存不足时自动清理
弱引用(WeakReference)
如果一个对象只有弱引用,当JVN触发GC时,就会回收该对象,不会有内存的限制。
Object weakReferenceObj = new Object();
WeakReference weakReference = new WeakReference(weakReferenceObj);
虚引用(PhantomReference)
如果一个对象只有虚引用,GC在任意时刻都会回收该对象
Object padReferenceObj = new Object();
ReferenceQueue queue = new ReferenceQueue();
PhantomReference pf = new PhantomReference(padReferenceObj, queue);