java 的引用学习

it2026-01-03  8

1.引用的分类:

强引用 软引用 弱引用 虚引用(未学)

//强引用:“=”这个连接的 String str="abc";//常量池里面 //软引用 SoftReference<String> sfr=new SoftReference<String>(str); //弱引用 WeakReference<String> wfr=new WeakReference<String>(str);

判断是可及性:对象的可及性由最强引用类型来决定

1.强引用:

强引用:不会被GC回收,

2.软可及

干掉强引用

//干掉强引用 str=null;

剩下软、弱引用,此时就是软可及

软引用:系统内存不足时,被GC回收

弱可及:

干掉,强引用,软引用,就剩下弱引用

//清除软引用的引用链 sfr.clear();

弱引用:GC发现他的时候,就把它回收

验证弱引用被GC回收

方法:

String str="abc";//这个常量池里面

GC回收的是堆内存 所以执行System.gc()不能回收在常量池里的东西,要创建一个在堆内存的字符串才能被回收

String str=new String("abc");//这个在堆里创建的,所以可以被回收
最新回复(0)