垃圾收集算法
一、标记——清除算法
(1)标记需要会受到的对象 (2)清除被标记的对象
缺点:(1)效率不高,两个过程效率不是很高
(2)空间问题 清除完成后会产生大量不连续的碎片,在运行时分配大对象的时候无法找到连续内存的时候就不得不重新分配
二、复制算法
为了解决效率的问题,复制收集的算法出现,可将可用的内存按容量划分为大小相等的两块,每次只用一块,一块内存用完了,将还存活的对象复制到另一块上面,然后把使用过的内存空间处理掉
这个图是左右看的,但是本来一大块内存却只用一半(使用的内存代价太高)以空间换时间
三、标记-整理算法
标记过程和标记清除算法一样,但是在整理的过程中,让所有存活的对象向一端去移动
分代收集:根据对象存活周期的不同将内存划分为几块
(1)新生代:每次垃圾收集时都有大批对象死去,少量存活使用 复制算法
(2)老年代:对象存活率高,没有额外空间对他进行分配担保(标记——清除/整理)