jvm 垃圾回收——标记清除算法、复制算法、标记整理算法
一、标记清除算法:

----------------------------------------------

------

------------------------------------------------------------------------------------------------------------------------------
二、复制算法:
步骤:
1. 把整个堆内存空间划分为两块:From空间、To空间;每次在对象分配阶段,只能使用From空间
2. 垃圾回收阶段开始时,将GC Root对象搬运到To空间,再将GC Root关联的对象也搬运到To空间
3. 最后,From空间剩下的就是与GCRoot没有关联的对象,也就是需要被回收的对象,所以接下来把From空间清理掉
4. 将两个空间的名字互换

---------------------------------------------------------------------------------------------------------------------
三、标记整理算法(标记压缩算法):
1. 标记阶段:将所有存活的对象进行标记。Java中使用可达性分析算法,从GC Root对象开始 通过引用链遍历出所有存活对象
2. 整理阶段:将所有存活对象移动到堆的左端,右端里面就是不再使用的对象,把右端清理掉
所以,这个算法是没有产生内存碎片的

浙公网安备 33010602011771号