强引用和弱引用jvm回收区别

本文详细解析了强引用和弱引用的回收步骤。强引用回收涉及对象的finalize方法执行,若对象重新被引用则逃离回收;弱引用则在内存不足时立即回收。深入理解引用类型有助于资源管理。
  • 强引用回收的步骤
    1、判断是否有必要执行finalize方法
       下面两种情况没有必要执行了
        a)对象没有重写finalize方法
        b)finalize方法已经被虚拟机调用过了
    
    2、如果上述条件判断出,是需要执行finalize方法的;那么此对象将会放置在一个叫做 F-Queue的队列中,并由虚拟机自建的Finalizer线程去执行它(此线程低优先级)
    
    3、是被回收还是逃离回收
    
    如果在对象的finalize方法的逻辑中把this又被存活的对象引用了,则判断为逃离回收了
    
    如果没有被其他存活对象引用上,则执行回收

     

  • 弱引用回收的步骤
    当内存不够时,一旦发生GC,则立即回收弱引用的内存

     

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值