JVM垃圾回收算法

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

1.1  引用计数法

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

  优点:实现简单,效率高

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

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

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/stevehu1231/p/8120231.html