Java 虚拟机垃圾收集算法

1.标记-清除算法:

首先标记出所有需要回收的对象,在标记完成后统一进行回收。

特点:标记、清除两个过程的效率都不高,出现碎片。

2.复制算法:

它将可用的内存划分为大小相等的两块,每次只使用其中的一块,当这一块用完了,就将还存活的对象复制到另一块上面,然后把这块内存一次性清理掉。

特点:代价高、存活率高时效率较低。

改进:调整分配比例,例如IBM把内存分为一块Eden和两块较小的Survivor空间,比为8:1:1.

3.标记-整理算法:

过程与标记-清除算法一样,后续进行存活对象的移动。

4.分代收集算法:

把内存分为新生代和老年代,新生代采用复制算法,老年代采用“标记-清理“或者”标记-整理”算法。

你可能感兴趣的:(Java 虚拟机垃圾收集算法)