java引用类型和对象回收

java 引用和垃圾回收

流程

  1. 判断一个对象是否可以被回收首先要 判断是否有指向对象的引用
  2. 如果没有引用 直接回收
  3. 然后判断是否有强引用(可以有多个)
  4. 如果有至少1个强引用 则不回收
  5. 如果没有强引用 判断是否有软引用
  6. 如果有软引用 判断jvm内存是否超出
  7. 如果超出 就回收这个对象 将弱引用加入到引用队列
  8. 如果没有超出 或者 没有软引用 就判断是否有弱引用
  9. 如果有弱引用 直接回收 并且将弱引用加入到 引用队列
    10.如果没有弱引用 判断是否有虚引用 (虚引用对垃圾回收没有影响 只是jvm对象的生命周期的一个钩子函数而已 通过它可以看到对象何时被回收的)
  10. 如果有虚引用 将虚引用加入到引用队列

使用

参考

  1. https://www.jianshu.com/p/e5364c05cc80
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值