Java中的四种引用类型分别是强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。
-
强引用(Strong Reference):是使用最普遍的引用类型,它直接指向对象,并且只要存在强引用,垃圾收集器就不会回收该对象。例如:Object obj = new Object()。
-
软引用(Soft Reference):是一种比较灵活的引用类型,当堆内存不足时,垃圾收集器会优先回收软引用指向的对象。一般用于内存敏感的程序中,如缓存处理等。例如:SoftReference softRef = new SoftReference(obj)。
-
弱引用(Weak Reference):是一种比软引用更弱的引用类型,它的生命周期只能存活到下一次垃圾收集之前,即只要被垃圾收集器扫描到,就会被回收。例如:WeakReference weakRef = new WeakReference(obj)。
-
虚引用(Phantom Reference):是一种最弱的引用类型,无法通过虚引用访问对象本身,仅用于跟踪对象被垃圾回收的状态。例如:ReferenceQueue queue = new ReferenceQueue(); PhantomReference phantomRef = new PhantomReference(obj,queue)。