可作为GCRoot的对象包括哪些?

一、虚拟机栈中的本地变量

public class GCRootExample {
    public void exampleMethod() {
        // 在虚拟机栈中的本地变量引用的对象
        MyClass myObject = new MyClass();
        // ...
    }
}

二、方法区中的静态变量

public class GCRootExample {
    // 静态变量引用的对象
    private static MyClass myStaticObject = new MyClass();
}

三、方法区中的常量引用

public class GCRootExample {
    // 常量引用的对象
    private static final String MY_CONSTANT = "constant";
}

四、本地方法栈中JNI(Java Native Interface)引用的对象

public class GCRootExample {
    // 本地方法栈中JNI引用的对象
    public native void nativeMethod();
}

你可能感兴趣的:(JVM,java,jvm,开发语言)