本技术文档旨在介绍 GC 根对象的概念及其类型。垃圾回收器通过扫描不同区域的根对象来识别存活对象,并进行内存管理。文档详细列举了多个 GC 根对象类型及其描述,帮助开发者快速理解 Java 内存管理中的重要概念。
GC根对象的概念
垃圾回收器从这些区域开始扫描存活对象。比如下图中,垃圾回收器从线程栈这片区域出发,扫描到对象A和B,然后以这两个对象为起点,扫描其他对象。

不同的区域存放了不同的GC根对象,在分析过程中可能遇到的所有区域如下:

GC根对象类型
对象类型  | 描述  | 
Unknown  | 未知类型。  | 
System Class  | 这是一个  | 
Jni Local  | 这是一个 JNI 局部引用。  | 
Jni Global  | 这是一个 JNI 全局引用。  | 
Thread Block  | 这个对象被当前活跃的对象块引用。  | 
Busy Monitor  | 这是一个调用了  | 
Java Local  | 这是一个 Java 局部变量,只存在于当前栈帧中。  | 
Native Stack  | 这是 native 方法的入参。  | 
Thread  | 这是一个  | 
Finalizable  | 这是一个等待执行  | 
Unfinalized  | 这个对象虽然有  | 
Unreachable  | 这是一个垃圾对象,即垃圾回收器无法触及到的对象,在下一次 GC 中将会被回收。  | 
Stackframe  | 包含局部变量的 Java 栈帧。  | 
Nmethod  | 这是一个 JIT 编译的方法。  | 
该文章对您有帮助吗?