JAVA强引用、软引用、弱引用、虚引用小结
时间: 2023-09-06 18:10:54 浏览: 108
Java对象的强、软、弱和虚引用
4星 · 用户满意度95%
JAVA中的引用类型主要包括强引用、软引用、弱引用和虚引用。
1. 强引用(Strong Reference):最常见的引用类型。只要某个对象有强引用与之关联,垃圾回收器就不会回收该对象。例如:Object obj = new Object(),这时obj是一个强引用,指向了一个对象。
2. 软引用(Soft Reference):对于只有软引用关联的对象,在内存不足时,垃圾回收器可能会回收这些对象。软引用可以通过 SoftReference 类来创建。例如:SoftReference<Object> softRef = new SoftReference<>(obj)。
3. 弱引用(Weak Reference):比软引用更弱一些,只有弱引用关联的对象在垃圾回收时,不论内存是否充足,都会被回收。弱引用可以通过 WeakReference 类来创建。例如:WeakReference<Object> weakRef = new WeakReference<>(obj)。
4. 虚引用(Phantom Reference):最弱的一种引用关系。虚引用的对象无法通过引用直接访问,也无法获取对象的任何属性或方法。主要作用是在对象被垃圾回收时,收到一个系统通知。虚引用可以通过 PhantomReference 类来创建。例如:PhantomReference<Object> phantomRef = new PhantomReference<>(obj, referenceQueue)。
这些引用类型在内存管理中起到不同的作用。强引用是最常用的,其他引用类型通常用于辅助内存管理,例如在缓存、对象池等场景中使用软引用和弱引用,或者在处理直接内存时使用虚引用。
阅读全文