- 标记清除:标记无用内存,进行回收。缺点:效率不高,会有内存碎片
- 标记复制:内存分为两块大小相等的区域,当一块用完时将活着的对象复制到另一块,清除源内存。缺点:内存使用率不高
- 标记整理:标记无用内存,同时将活着的对象移到一起,清除无用内存。
- 分代算法:将堆划分为新生代,老年代。新生代采用标记复制算法,老年代采用标记整理算法
标记清除
优点
实现简单,不需要进行对象移动
缺点
标记、清除效率低,产生内存碎片,需要频繁垃圾回收
标记复制
为了解决标记清除算法的缺点,产生了标记复制算法
优点
实现简单(不需要对象移动),运行效率高,不会有内存碎片
缺点
内存使用率低,对象存活率高时会频繁复制
标记整理
老年代的对象存活率高,故不能用标记复制算法
优点
没有标记清除算法的内存碎片问题。
缺点
需要对象移动,效率不高
分代收集器算法
分为新生代,老年代,元空间