垃圾收集算法
垃圾收集算法有四种:分代收集理论、复制算法、标记整理算法、标记清除算法。

分代收集理论:当前虚拟机的垃圾收集都采用分代收集理论,根据对象存活周期的不同将内存分为几块,一般将java堆分成新生代和老年代。
复制算法:为了解决效率问题,它的原理是将内存分为大小相同的两块,每次只使用其中的一块,当这一块的内存使用完后,就将还存活的对象复制到另外一块去,然后再把使用的空间一次性清理掉,这样做的好处是每次内存回收都是对内存区间的一半进行回收。该算法效率高,但同时也浪费了内存空间,因为总有一半的内存空间未使用。
标记-整理算法:先标记存活的对象,让所有存活的对象向一端移动,然后直接清理掉端边界以外的内存。

标记-清除算法:先标记存活的对象,然后统一回收未标记的对象,即垃圾对象;反过来也一样。但存在两个两个比较明显的问题:1、效率问题(如果需要标记的对象过多,效率不高);2、空间问题(标记清除后会产生大量的不连续的空间碎片)


浙公网安备 33010602011771号