一. 标记清除算法(Mark-Sweep)
最基础的垃圾回收算法,分为标记和清除两步。
最大的问题:会导致内存碎片化严重,可能导致大对象找不到可以利用的空间。
二. 复制算法(copying)
为了解决 Mark-Sweep 算法内存碎片化的缺陷而被提出的算法。
按内存容量将内存划分为等大小的两块,每次只使用其中一块,当这一块内存满后将尚存活的对象复制到另一块上去,把已使用的内存块清掉。
最大问题:内存利用率低,存活对象增对时,效率会大大降低。
三. 标记整理算法(Mark-Compact)
结合了以上两个算法,标记阶段和 Mark-Sweep 算法相同, 标记后不是清理对象,而是将存活对象移向内存的一端。然后清除端边界外的对象。
原文:https://www.cnblogs.com/shijianchuzhenzhi/p/12951461.html