关于Java的四种引用类型

1. Strong Reference (强引用

例如Object Strong = new Object()。
只要强引用存在,垃圾回收器将永远不会回收具有强引用的对象,即使内存不足,JVM也只会直接抛出OutOffMemoryError来使程序异常终止。
如果想中断强引用与对象之间的联系,可以显式地将强引用对象设置为null,或让其超出对象的生命周期范围,那JVM就会适时地回收强引用对象。

2. Solf Reference (软引用

用SolfReference类来实现,是一些非必需但仍有用的对象。
在内存足够时,软引用对象不会被回收;如果内存不足,则会回收软引用对象。
如果回收软引用对象之后仍然没有足够的内存,则会抛出内存溢出异常。因此,这种特性常被用来实现缓存技术,如网页缓存、图片缓存等。

3. Weak Reference (弱引用

用WeakReference类来实现。引用强度比软引用更弱一些,生命周期相比于软引用也更加短暂。
无论内存是否足够,JVM开始进行垃圾回收时,被弱引用关联的对象都会被回收。

4. Phantom Reference (虚引用

用PhantomReference类来实现,顾名思义,是最弱的一种引用关系(形同虚设)。
如果一个对象仅持有虚引用,那它就和没有任何引用一样,随时可能会被回收。
主要用来跟踪对象被垃圾回收器回收的活动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值