JVM:GC判断算法
垃圾收集器:
- 什么样的对象可以被GC?
- 判断算法:
引用计数法:当A对象中引用了B,B就计数一次,只要B的计数不等于0,那么B就不能被回收,否则就可以被回收。
可达性分析
从GCroot开始,如果到达A,A又能到达B,那么说明A和B都具有可达性,就不能被垃圾回收。
可以作为GCroot的对象:本身不能被GC。
1、虚拟机栈中的局部变量表中引用的对象。
2、方法区中的常量、静态变量引用的对象。
3、本地方法栈中的JNI引用的对象。
不可达是否就一定会被回收呢?