JVM—【02】认识JVM的垃圾回收算法与收集器
1. 对象存活判断 1.1. 引用计数算法 Reference Counting 给对象添加一个引用计数器,每当有一个地方引用它的时候,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为0的对象就是不可能再被使用的。 主流的JVM没有选用引用计数算法来管理内存,主要的原因是它很难解决对象之间的相互循环引用的问题。 1.2. 可达性分析算法 Reachability Analysis 通过一系列称为“GC-Roots”的对象作为起点,从这些结点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的(图论中的不可达)。 可作为GC Roots的对象: 虚拟机栈(战争中的本地变量表)中引用的对...阅读全文