Java的四种引用

Java从1.2开始就有个不同引用的概念,废话不多说,直接上!

  • 强引用(StrongReference)

  • 软引用(SoftReference)

  • 弱引用(WeakReference)

  • 虚引用(PhantomReference

强引用(StrongReference)

在1.2之前,只有强引用,这种引用,简单来说就一个字,

没有具体的类来标识强引用,我们正常使用的变量,都是强引用!

GC(垃圾回收器)不会去回收强引用;当内存空间不足时,JVM宁愿抛出OOM(OutOfMemry)的错误使程序终止,都不会轻易回收强引用对象!

软引用(SoftReference)

当内存空间够的时候,软引用和强引用没啥区别,也是一条汉子!

BUT,当内存空间不够的时候,他就怂了,JVM会把软引用的回收,以避免OOM的产生!

弱引用(WeakReference)

弱引用是真的弱,比起软引用只有在内存不足的时候才会被回收来说,弱引用是每次GC的时候一旦被发现有他的存在就直接被回收了,不管内存够不够,反正你弱,就是要把你干掉!

虚引用(PhantomReference

形同虚设的一种引用!

听起来似乎很假,其实是真的。如果一个对象是虚引用,那就和没有引用没啥区别!

对!和没有引用没啥去别,完全不应用对象的生命周期!就是这么虚!

Execuse me,那这玩意儿有啥用??!

这个就要提一个很好用的东西,叫做:引用队列(ReferenceQueue

引用队列(ReferenceQueue

对象被垃圾回收,JVM就是这个引用加入到与之关联的引用队列中。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值