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