Java 四大引用

Java 四大引用

前言

Java将对象的引用划分为4个等级,分别是:强引用、软引用、弱引用和虚引用。

根据不同引用类型可以灵活控制对象的生命周期,提高对象的回收效率。

强引用

强引用是使用最多的,gc不会回收强引用的对象,即使JVM发生内存溢出,也不会回收该对象。

 Object o = new Object();

软引用

只要内存足够,JVM不会回收该对象;但当内存不足时,gc对软引用对象进行回收。

String str = "软引用对象";
//使用软引用
SoftReference<String> soft = new SoftReference<>(str);
//获取软引用的对象
String s = soft.get();

弱引用

当gc发现弱引用时,不管内存是否充足,都会直接回收。

String str = "弱引用对象";
//使用软引用
WeakReference<String> weak = new WeakReference<>(str);
//获取软引用的对象
String s = weak.get();

虚引用

虚引用再任何时候都可能被gc回收。

String str = "虚引用对象";
ReferenceQueue<String> queue = new ReferenceQueue<>();
PhantomReference<String> phantom = new PhantomReference<>(str, queue);
String s = phantom.get();

猜你喜欢

转载自blog.csdn.net/qq_14876133/article/details/109567176