可达性算法
可达性算法是判定对象是否能被回收的算法,java中的GC就是用的这种算法,简单来说就是从GC roots开始,在引用链上的可达,没在引用链上的就可以被回收。
GC roots
在Java语言中,可作为GC Roots的对象包括下面几种:
- 虚拟机栈(栈帧中的本地变量表)中引用的对象。
- 方法区中类静态属性引用的对象。
- 方法区中常量引用的对象。
- 本地方法栈中JNI(即一般说的Native方法)引用的对象。
可达性算法是判定对象是否能被回收的算法,java中的GC就是用的这种算法,简单来说就是从GC roots开始,在引用链上的可达,没在引用链上的就可以被回收。
在Java语言中,可作为GC Roots的对象包括下面几种: