-
标记-清除算法
①原理:首先标记出所有需要回收的对象,标记完成后统一回收,
②缺点:执行效率不稳定(堆中的对象数量不确定);内存空间的碎片化问题
-
标记-复制算法
①原理:半区复制,将内存分为两块,一块为保留区域,保留区域会在清除前把存储的对象复制进来,清理完毕后和另外一个区域互换身份
②优点:解决了碎片化问题
缺点:会分走额外的内存
-
标记-整理算法
①原理:将所有对象向内存的一端移动,清理掉边界的对象
②缺点:运行的时候需要暂停程序的运行(STW);移动的时候内存回收会更加的复杂,