java虚拟机四种垃圾收集算法:标记清除,复制,标记整理,分代收集算法
分类:
文章
•
2023-03-25 15:51:37
java虚拟机四种垃圾收集算法:标记清除,复制,标记整理,分代收集算法
1.标记清除算法
首先标记出所有需要回收的对象,在标记完成之后统一回收清除。缺点是效率低,会产生大量不连续的内存碎片。
2.复制算法
首先将内存分为两块,当其中一块用完之后,将还活着的对象复制到另一块,清空原来的半块。缺点是将内存空间缩小为了一半。可以用这种方法回收新生代。
3.标记整理算法
前面的思路和标记清除算法相同,后面不直接清理,而是让存活的对象向一端移动,然后直接清理掉边界以外的内存。适用于老年代。
4.分代收集算法
将java堆分为新生代和老年代,新生代总是需要回收,剩下的对象不会太多,所以新生代采用复制算法。老年代不太动用,所以可以采用标记整理算法。总的来说就是新生代和老年代采用不同的算法。