垃圾回收算法
复制算法:
思想:将内存按容量分为两块,每次只使用其中一块,每次将其中一块存活的对象复制到另一块上去,再清空这块区域。这种方式不需要考虑内存碎片,只需要考虑复制的开销;
注意:对象复制过区之后,对应的引用指针也改变了。这种算法适合新生代,因为新生代对象朝生夕死,需要复制的对象少,效率高。
标记-清除算法
思想:将垃圾回收分为标记和清除两个阶段,其中标记是将需要回收的对象进行扫描标记,清除就是对这些垃圾对象进行清除;
注意:这种算法一般用在老年代,但是会产生大量内存碎片,会触发提前GC。
标记-整理算法
思想:在标记清除算法的思想上,清除之后对内存空间进行整理,将存活对象向一端移动;
注意:这种算法效率偏低,而对象移动之后也需要进行对象指针调整。