3.1、JVM-垃圾回收-如何判断对象为垃圾对象?

目录

         判断对象为垃圾对象的两种方法

引用计数算法

可达性分析法


 

  • 如何判断对象为垃圾对象?
    • 引用计数法

    • 可达性分析法

  • 如何回收?

    • 回收策略

      • 标记-清除算法

      • 复制算法

      • 标记-整理算法

      • 分代收集算法

    • 垃圾回收器

      • Serial

      • Parnew

      • Cms

      • G1

  • 何时回收?


引用计数算法

 

    在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值就+1,当引用失效的时候,计数器的值就-1(简单便捷,但没有人使用这种算法,因为这种算法只在引用地址指向堆的地方计数,如果堆中的多个实例相互引用而不是引用地址引用,这时引用计数算法是计数的,导致堆中相互引用的对象不会被垃圾回收)

  • 打印垃圾回收日志的参数

    • 垃圾日志简单信息:-verbose:gc

    • 垃圾日志详细信息:-verbose:gc -XX:+PrintGCDetails


可达性分析法

    通过一系列的称为'GC Roots'的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。避免了引用计数算法的问题,如下图object5、6、7当有对象相互关联时,但是它们到GC Roots是不可达的,所以他们将会被判定为是可回收的对象。

                                                                                                 注:博文内容来自书本《深入理解Java虚拟机》第2版 周志明著

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又逢乱世

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值