(1)標記-清除(Mark-Sweep)算法:先標記回收的對象,再清除。缺點:效率問題,標記、清除的效率不高;空間問題,產生大量不連續的內存碎片。 (2)複製(Copying)算法:把內存劃分爲兩個大小相等的區域,把一個區存活的對象移到另一個區域,再把這個區域整個清除。 優勢:實現簡單、運行高效;缺點:內存爲原來的一半。 (另一種是依據新生代的對象98%存活率不高,內存可按8:1:1分三塊,90%能夠用。不過若是不夠,須借用老年代的內存了) (3)標記-整理(Mark-Compact)算法:前半步驟按Mark-Sweep的步驟,後來先將存活的對象移到一端,再清除回收對象。 (4)分代收集(Generational Collection)算法: 根據對象的存活週期劃份內存。通常爲新生代和老年代。新生用Copying算法而老年代用Mark-Compact或Mark-Sweep算法。