本技术文档旨在介绍 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 编译的方法。 |
该文章对您有帮助吗?