标记清除算法
第一步:标记
(找出内存中需要回收的对象,并且把它们标记出来)
第二步:清除
(清除掉被标记需要回收的对象,释放出对应的内存空间)
缺点: 标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需 要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。 (1)标记和清除两个过程都比较耗时,效率不高 (2)会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大 对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。
标记清除算法的衍生规则之分配(动态分区分配策
略)
首次适应算法(Fisrt-fit) 首次适应算法(Fisrt-fit)就是在遍历空闲链表的时候,一旦发现有大小等于需要的大 小之后,就立即把该块分配给对象,并立即返回。
最佳适应算法(Best-fit) 最佳适应算法(Best-fit)就是在遍历空闲链表的时候,返回刚好等于需要大小的块。
最差适应算法(Worst-fit) 最差适应算法(Worst-fit)就是在遍历空闲链表的时候,找出空闲链表中最大的分块, 将其分割给申请的对象,其目的就是使得分割后分块的最大化,以便下次好分配