垃圾回收算法
垃圾收集算法
标记 - 清除
将存活的对象标记, 然后清理掉未标记的对象.
缺点:
标记和清除的效率不高.
产生大量内存碎片, 不能给大的对象分配内存....复制
将内存分成两块, 每次只用其中的一半, 当这一半用完了, 就将存活的对象放到另一半, 然后把当前这一半回收....Java中的新生代就是用的这个方法, 但是是将内存分成了较大的Eden区和两个Survivor区, 每次使用Eden和一个Survivor. 回收的时候, 将存活的对象放在另一个Survivor区....如果回收时候有超过一个Survivor大小的对象, 需要老年代进行分配担保, 也就是借用老年代的空间暂存对象.
分代收集
Java堆分成新生代和老年代.