java 的引用学习

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");//这个在堆里创建的,所以可以被回收
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值