1.標(biāo)記-清除算法:
首先標(biāo)記出所有需要回收的對(duì)象,在標(biāo)記完成后統(tǒng)一進(jìn)行回收。
特點(diǎn):標(biāo)記、清除兩個(gè)過程的效率都不高,出現(xiàn)碎片。
2.復(fù)制算法:
它將可用的內(nèi)存劃分為大小相等的兩塊,每次只使用其中的一塊,當(dāng)這一塊用完了,就將還存活的對(duì)象復(fù)制到另一塊上面,然后把這塊內(nèi)存一次性清理掉。
特點(diǎn):代價(jià)高、存活率高時(shí)效率較低。
改進(jìn):調(diào)整分配比例,例如IBM把內(nèi)存分為一塊Eden和兩塊較小的Survivor空間,比為8:1:1.
3.標(biāo)記-整理算法:
過程與標(biāo)記-清除算法一樣,后續(xù)進(jìn)行存活對(duì)象的移動(dòng)。
4.分代收集算法:
把內(nèi)存分為新生代和老年代,新生代采用復(fù)制算法,老年代采用“標(biāo)記-清理“或者”標(biāo)記-整理”算法。