你在C++程序员食堂吃饭,吃完了你得把盘子这些收拾干净然后送到指定地点....但是呢,有时候你会忘掉收拾(吃完就溜~~),这个位置不就没人会坐了嘛,这就是忘记释放内存.
----
但是java程序员食堂就不一样了,(手动狗头),吃完了可以甩手就走....复制算法
复制算法讲内存分成两个部分,而且每次只用一半,如果那一半快用完了,就把存活对象依序复制到另一块上,再把用过的那块全部清理掉.这种算法可以忽略内存碎片的问题,但是缺点也很明显,每次只能用一半的内存...标记 - 整理算法
标记整理算法是让所有的存活对象都向一端移动,接着清理掉末端的所有内存
image-20200921112911437.png
.这样存活的对象就会聚集在一起,剩下的内存就可以直接清理了...这意味着只有一个线程清理,不仅如此,用户线程在清理时必须终止(防止在清理过程中还会产生垃圾)
这个是Serial收集器的“Stop The World”。