GC Root和可达性分析算法

对象生死判定

如何判断Java中一个对象应该 “存活” 还是 “死去”,这是 垃圾回收器要做的第一件事。

GC Root

GC Root也成为GC根对象。

GC根对象

在Java中, 可作为GC Roots的对象包括以下四种:

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

可达性分析算法也叫根搜索算法,通过一系列的称为 GC Roots 的对象作为起点,然后向下搜索。搜索所走过的路径称为引用链 (Reference Chain), 当一个对象到 GC Roots 没有任何引用链相连时, 即该对象不可达,也就说明此对象是 不可用的。

(完)

发表评论

邮箱地址不会被公开。 必填项已用*标注