Java对象的四种引用类型

在Java中,对象的引用类型分为四种:强引用、软引用、弱引用、虚引用

 

强引用:正常情况下声明的对象皆为强引用,在强引用环境下,垃圾回收时需要严格判断当前对象是否被强引用,如果被强引用,则不会垃圾回收。

 

软引用:软引用一般被作为缓存使用,软引用在垃圾回收时,虚拟机会根据当前系统的剩余内存来决定是否对软引用进行回收,如果内存比较紧张,虚拟机则会回收软引用对应的空间。

 

弱引用:与软引用类似,不同的是,弱引用在进行垃圾回收时,是一定会被回收掉的。

 

虚引用:虚引用不会决定对象的生命周期,如果对一个对象仅持有虚引用,则是没有任何意义的,虚引用必须和引用队列联合使用。虚引用主要用来跟踪对象被虚拟机回收的活动,当虚拟机回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把该对象加到引用队列中(在finalize之后),之后可以通过判断引用队列中是否有对象来得知对象即将被回收。

 

引用类型被垃圾回收时间用途生存时间
强引用从来不会一般状态JVM停止
软引用在内存不足时缓存内存不足时
弱引用在垃圾回收时缓存一次回收过后
虚引用跟踪回收活动

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值