1、标记-清除算法:首先标记出所有需要回收的对象,在标记完成后统一回收所有标记的对象。主要有两个缺点:一是效率问题,标记和清除的效率都不高;另一个是空间问题,标记清除后会产生大量不连续的内存碎片,空间碎片太多,可能会导致,当程序在以后的运行过程中需要分配较大分配较大对象时无法找到足够的连续的内存而不得不提前出发另一次垃圾回收机制,以下示意图:
2、复制算法:它可以将内存安容量划分为大小相等的两块,每次只用其中的一块,当这一块的内存用完,就将还活着的对象复制到另一块上面,然后再把使用过的内存空间一次清理。这种算法的缺点:内存缩小为原来的一半。
3、标记整理算法:标记过程任然与“标记清除”算法一样,但后续步骤不是直接对可回收的对象进行清理,而是让所有存货的对象都想一端移动,然后直接清理掉端边界以外的内存。
207

被折叠的 条评论
为什么被折叠?



