说一说强、软、弱、虚引用

Java根据其生命周期的长短将引用类型又分为强引用、软引用、弱引用、虚引用。

  • 强引用:就是我们平时 new一个对象的引用。当JVM的内存空间不足时,宁愿抛出OutOfMemoryError使得程序异常终止,也不愿意回收具有强引用的存活着的对象。

  • 软引用:生命周期比强引用短,当JVM认为内存空间不足时,会试图回收软引用指向的对象,也就是说在JVM抛出OutOfMemoryError之前,会去清理软引用对象,适合用在内存敏感的场景。

  • 弱引用:比软引用还短,在GC的时候,不管内存空间足不足都会回收这个对象,ThreadLocal中的 key 就用到了弱引用,适合用在内存敏感的场景。

  • 虚引用:如果一个对象仅持有虚引用,它就和没有任何引用一样,在任何时候都可能被垃圾回收。唯一作用就是配合引用队列来监控引用的对象是否被加入到引用队列中,也就是可以准确的让我们知晓对象何时被回收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值