强引用,软引用,弱引用,虚引用

强引用 StrongReference

例子:// 强引用 String strongReference = new String("abc");

最普遍的引用,内存不够用报错GC也不会回收

软引用SoftReference

例子:

// 软引用 String str = new String("abc");

SoftReference<String> softReference = new SoftReference<String>(str);

内存不够用就会被回收

弱引用 WeakReference

只要遭遇到GC就会被回收,如果有个强引用指向他,强引用没了,就不用管了,gc会自动回收,一般用在容器。

典型应用ThreadLocal  https://blog.csdn.net/u010191034/article/details/109224321

虚引用 PhantomReference

例子:

PhantomReference<M>phantomReference=newPhantomReference<>(newM(),QUEUE);

特点:

1 引用后获取不到,get不到

2 GC看到就灭掉 ,虚引用被回收  会有个队列专门队列收到通知,队列会收到一个值调用垃圾回收

3 给写虚拟机的人用,用于清理堆外内存,管理堆外内存

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值