1、虚拟机栈-局部变量表 中引用的对象 2、方法区中 类静态属性 引用的对象 3、方法区中 常量 引用的对象 4、本地方法栈中 JNI 引用的对象 参考 1、通过System Class Loader或者Boot Class Loader加载的class对象,通过自定义类加载器加载的class不一定是GC Root 2、处于激活状态的线程 3、栈中的对象 4、JNI栈中的对象 5、JNI中的全局对象 6、正在被用于同步的各种锁对象 7、JVM自身持有的对象,比如系统类加载器等。