JVM垃圾回收算法有哪些
标记清除算法(mark and sweep)
将垃圾回收分为两个阶段:标记和清除
根据可达性分析算法得出的垃圾进行标记
对标记的内容进行垃圾回收
优点:
标记和清除速度较快
缺点:
碎片化较为严重,内存不连贯
标记整理算法
记录存活的对象,清除需要回收的对象
在清除后整理对象
回收后对象的内存空间也是连贯有序的
优点:
解决了碎片化问题
缺点:
额外增加了一步整理过程
标记复制算法
将整个内存分成了两块大小相同的区域
一块内存专门用于存放回收后的资源
在标记后将这些资源全部复制到空内存中,复制后的资源就是连续的
随后就清空原来的区域,将其作为下一次的回收区域即可