JVM垃圾回收对象的依据—可达性分析

  可达性分析是判断对象是否存活的。算法的基本思路是通过一系列的”GC Roots"的对象作为起点,从这些节点开始向下搜索,

搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明这个对象是不可用的,判定为可回收的对象。

在Java语言中,可作为GC Roots的对象包括下面几种:

  1. 虚拟机栈(栈帧中的本地变量表)中引用的对象;
  2. 方法区中类静态变量引用的对象;
  3. 方法区中常量引用的对象;
  4. 本地方法栈中Native方法引用的对象。
posted @ 2018-01-20 10:17  未来的一片天0209  阅读(165)  评论(0编辑  收藏  举报