JVM垃圾回收的两种算法:
1.引用计数:对象每被引用一次就计数加1,引用被释放,计数减1,当计数变为0时,回收该对象
缺点:如果两个对象循环引用,那么他们均不会被回收
2.root搜索算法:定义一些root对象,这些对象均不会被回收。如果一个非root对象能够有一条路径到达root对象则不会被回收,否则进行回收
root对象:被Bootstrap加载的类和创建的对象;
JVM运行期间方法区类的静态变量引用的对象;
JVM运行期间常量池引用对象;
JVM运行线程中的虚拟机变量表引用的对象
本地方法JNI中引用的对象; |
|