1.标记清除算法:
分为两步 “标记” 和 “清除” 两个阶段。标记阶段在《对象已死吗》一文已经介绍过。 这个算法主要有两个不足:一是效率问题,“标记”和“清除”两个过程效率都不高,二是空间问题,标记清除之后会产生大量不连续的内存碎片,内存碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续空间而不得不提前触法另一次垃圾收集操作。
2.复制算法
3.标记整理算法
4.分代收集算法:根据对象的存活周期不同将内存划分为几块。一般是把java堆分为新生代和老年代。新生代使用复制算法,老年代使用标记清除算法。
时间: 2024-09-30 14:54:46