JVM GC算法

1.引用计数算法:对象创建一次,与之对应的引用计数器就+1,若该对象引用计数器结果为0,则表示该对象可以清理

JVM GC算法

2.标记清理算法:容易产生内存碎片。(在执行清除时,在内存中并未重新整理,零零散散)

      JVM GC算法

3.标记整理算法:相对于标记清除算法而言,多了一步整理内存。

4.将内存分为两块区域,AB 把A区域存活对象复制到B区域并同时清理A区域。因此A区域一直是新生对象。

5.分代算法:跟对象生存周期将内存分为不同块,每块采用不同算法:

      例如:新对象区域,对象的创建和死亡活动非常频繁,则将存活的对象复制到生存周期较长的区域(老对象区域),将死亡的对象清除掉。

                对于老对象区域,若在相当长时间内有对象死亡,则标记存活的对象,将未标记的对象清理掉。

更加详情的分代算法详见:春天的早晨博客-Java 分代收集算法