Java 垃圾回收机制相关算法

引用计数算法:一个对象被引用计数器加1,取消引用则计数器减1,计数器为0时,则回收该对象。

标记清除算法:回收时,分为两个阶段:标记阶段和清除阶段。标记阶段通过Root节点标记出所有可达的对象,清除阶段回收所有不可达的对象。

复制算法:将内存空间等分为两块,每次只用一块;GC时,将正在使用内存空间存活的对象,移动的另一外一块内存空间,然后清除剩下所有的对象。

标记压缩算法:在标记清除算法上做了优化,首先,从根节点上出发,标记所有不可达对象,然后,将所有可达对象移动到内存的另一端,最后,清除所有不可达对象。

分代算法:基于不同对象的生命周期不同的事实,将内存分为三大区域:年轻代,年老代,持久代,不同代使用不同的回收算法,对回收效率有很大的提高,目前基本上所有的jvm都使用了这种gc算法。