JVM学习之路---垃圾收集器算法(根搜索算法)

这个算法的基本思路就是通过一系列的名为“GC Roots”的对象作为起点,从这些节点开始向下搜索,搜索走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连(图论中是从GC Roots到这个对象不可达)时,证明此对象时不可用的。如图:
JVM学习之路---垃圾收集器算法(根搜索算法)_第1张图片
对象objct5,object6,object7虽然互相有关联,但是它们到GC Roots是不可达的,所以它们将会判定为是可回收的对象。
在Java中,可作为GC Roots的对象包括以下几种

  • 虚拟机栈(栈帧中的本地变量表)中引用的对象
  • 方法区中的类静态属性引用的对象
  • 方法区中的常量引用的对象
  • 本地方法栈中JNI(Native方法)的引用的对象

你可能感兴趣的:(深入理解java虚拟机)