gc策略有哪些:
引用计数法:优点:简单; 缺点:也比较明显,无法处理循环引用的问题。
根搜索算法:由于引用计数算法的缺陷,所以JVM一般会采用一种新的算法,叫做根搜索算法。它的处理方式就是,设立若干种根对象,当任何一个根对象到某一个对象均不可达时,则认为这个对象是可以被回收的。
哪些对象作为GC根对象:
说到GC roots (GC根) ,在JAVA语言中,可以当做GC roots的对象有以下几种:
1、虚拟机栈中的引用的对象。
2、方法区中的类静态属性引用的对象。
3、方法区中的常量引用的对象。
4、本地方法栈中JNI的引用的对象。
第一和第四种都是指的方法的本地变量表, 第二种表达的意思比较清晰,第三种主要指的是声明为final的常量值。