问答网

当前位置: 首页 > 知识问答 > gc roots有哪些

gc roots有哪些

知识问答 浏览4次

GC Roots是JVM中的一组必须活跃的引用,用于判断对象是否可以被回收,在Java语言中,GC Root主要包括以下几类元素:

1、虚拟机栈中引用的对象,各个线程被调用的方法中使用到的参数、局部变量等。

2、本地方法栈内JNI(通常说的本地方法)引用的对象。

3、方法区中类静态属性引用的对象,Java类的引用类型静态变量。

4、方法区中常量引用的对象,字符串常量池(string Table)里的引用。

5、所有被同步锁synchronized持有的对象。

6、Java虚拟机内部的引用,基本数据类型对应的Class对象,一些常驻的异常对象(如: NullPointerException、OutOfMemoryError),系统类加载器。

7、反映java虚拟机内部情况的JMXBean、JVMTI中注册的回调、本地代码缓存等 。