什么对象可以作为根节点

Java通过可达性分析来判断对象是否存活。
基本思想是通过一系列称为“GC roots”的对象作为起始点,可以作为根节点的是:

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

作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧中的本地变量)中。
虚拟机、本地方法栈这都是局部变量,某个方法执行完,某些局部使用的对象可以被回收。

猜你喜欢

转载自blog.csdn.net/jiangjunlanzhoulan/article/details/81275395