JVM垃圾回收算法

Posted Keep Moving

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM垃圾回收算法相关的知识,希望对你有一定的参考价值。

1.判断对象是否已死的两种方法

1.1  引用计数法

  给对象添加一个引用计数器,如果其他对象引用计数器加一,引用失效计数器减一,当计数器为0的时候,则对象就认为是死亡的状态

  优点:实现简单,效率高

  缺点:无法解决循环引用的问题,

1.2  可达性算法(目前jvm用的gc方法)

  通过GC roots 对象作为起始点,从节点向下搜索,当一个对象到GC roots没有引用链相连,则判断对象已死.

  在Java中,可作为GC roots 的对象包括下面几种

  (1)  栈中直接引用的对象

  (2)  方法区中类静态属性引用的对象.

  (3)  方法区中常量引用的对象

  (4)  本地方法栈中JNI(Native方法)引用的对象

以上是关于JVM垃圾回收算法的主要内容,如果未能解决你的问题,请参考以下文章

如何修改jvm虚拟机垃圾回收器

JVM垃圾回收的“三色标记算法”实现,内容太干

JVM的垃圾回收机制 总结(垃圾收集回收算法垃圾回收器)

JVM垃圾回收算法

JVM调优之垃圾定位垃圾回收算法垃圾处理器对比

图解JVM垃圾内存回收算法