常见的垃圾收集算法
主要分为三种算法

    标记-清除(Mark-Sweep)算法

首先进行标记工作,标识出所有要回收的对象,标记完成后统一进行清除。缺点有效率低,标记完成后会产生大量的内存碎片。空间内存太多可能会导致下一次分配较大对象时没有连续内存。

    复制算法

将可用的内存容量分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存一次性清理掉。这样每次只对一个半区进行内存回收,内存分配时不用考虑内存碎片等问题。代价是只使用一半的内存空间。

    现在大部分的新生代GC都是基于复制算法。新生代大部分的对象都是朝生夕死的。将内存分为一块较大的Eden区和两块较小的Survivor区域。每次使用Eden和一个Survivor.每次清理时把Eden和Survivor中还活着的区域复制到另外一块Survivor,最后清理掉刚才使用的Eden和Survivor区域。

    标记-整理(Mark-Compact)算法

类似于标记-清除(Mark-Sweep)算法,但为了避免内存碎片化,它会在清理过程中将对象移动,以确保移动后的对象占用连续的内存空间

更多精选文章
标签: survivor、eden、标记、一块、清理
一个创业中的苦逼程序员
笔试题


刷题


简历模板


AI算法


大数据


内推


推荐阅读:
阿里巴巴笔试面试大全
腾讯笔试面试大全
百度笔试面试大全
今日头条笔试面试大全
网易笔试面试大全
Google笔试面试大全
更多笔试面试大全
隐藏