它将可用的内存按容量划分为大小相等的两块,每次只使用其中的一块。当一块用完了,就将还存活着的对象复制到另一块上面,然后把已经使用过的内存空间一次清理掉。这样每次都是对整半个区进行内存回收。内存分配也就不用考虑碎片等复杂情况,只要移动堆顶指针,按顺序分配内存即可,实现简单,运行效率高,可是算法的代价是将内存缩小为原来的一半,代价高类一点。

在对象存活较高时就要进行较多的复制操作,效率将会变低。

有很多种变形

results matching ""

    No results matching ""