一 标记清除算法(MarkSweep)
首先标记出所有需要回收的对象标记完成后统一回收
主要缺点: 标记和清除效率都很低 产生大量不连续的内存碎片导致后面分配大内存空间失败
二 复制算法
将可用内存划分为大小相等的两块 每次只使用其中一块 当这块用完后就将还存活对象复制到另外一块上面再把已经使用的内存空间一次清理掉
主要缺点: 代价太高至少一半的内存不能使用
三 标记整理算法
标记过程和标记清除算法一致但是后续步骤是让所有存活的对象都向一端移动然后清理掉边界以外的内存
四 分代收集算法
当前商业虚拟机都采用此算法分为不同对象代去进行不同管理