哪些对象可以当作GC ROOT ?
一、从虚拟机的内存分区的角度来以下对象可以作为GC Root:
- 局部变量所引用的对象可以作为根对象。 例如 ArratList list = new ArrayList();
- 方法参数所引用的对象也可以作为根对象。
- 如果局部变量不再引用,那么就会被GC垃圾回收。
例如:list = null;那么new ArrayList()就会被当作垃圾回收。
总结:
-
1.java虚拟机栈中的引用的对象。
-
方法区中的类静态属性引用的对象。 (一般指被static修饰的对象,加载类的时候就加载到内存中。)
-
方法区中的常量引用的对象。
-
本地方法栈中的JNI(native方法)引用的对象