要应用GC_ROOT算法,判定某个对象是否会被回收,关键是要确定root。
【
说到GC roots(GC根),在JAVA语言中,可以当做GC roots的对象有以下几种:
1、虚拟机栈中的引用的对象。
2、方法区中的类静态属性引用的对象。
3、方法区中的常量引用的对象。
4、本地方法栈中JNI的引用的对象。
第一和第四种都是指的方法的本地变量表,第二种表达的意思比较清晰,第三种主要指的是声明为final的常量值。
】
方法区中存放的是类信息(class文件中的信息)。
例子:下述的Something和Apple都可以作为root对象。分别对应上述的第2种和第3种。
public AClass{ public static Something; public static final Apple; ‘‘‘‘‘‘ }
那么,方法的本地变量表,对应代码中的哪部分呢?
待续---------
参考资料:
http://www.cnblogs.com/zuoxiaolong/p/jvm3.html
判定对象是否存活的算法----GC_ROOT算法
时间: 2024-10-30 05:48:58