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

导读:本篇文章讲解 3.1、JVM-垃圾回收-如何判断对象为垃圾对象?,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

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

引用计数算法

可达性分析法


 

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

    • 可达性分析法

  • 如何回收?

    • 回收策略

      • 标记-清除算法

      • 复制算法

      • 标记-整理算法

      • 分代收集算法

    • 垃圾回收器

      • Serial

      • Parnew

      • Cms

      • G1

  • 何时回收?


引用计数算法

 

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

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

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

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

    • 垃圾日志详细信息:-verbose:gc -XX:+PrintGCDetails3.1、JVM-垃圾回收-如何判断对象为垃圾对象?3.1、JVM-垃圾回收-如何判断对象为垃圾对象?


可达性分析法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/72577.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!