java虚拟机四种垃圾收集算法:标记清除,复制,标记整理,分代收集算法

喜欢ヅ旅行 2023-06-21 15:28 134阅读 0赞

java虚拟机四种垃圾收集算法:标记清除,复制,标记整理,分代收集算法

1.标记清除算法

首先标记出所有需要回收的对象,在标记完成之后统一回收清除。缺点是效率低,会产生大量不连续的内存碎片。

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxOTAxOTE1_size_16_color_FFFFFF_t_70

2.复制算法

首先将内存分为两块,当其中一块用完之后,将还活着的对象复制到另一块,清空原来的半块。缺点是将内存空间缩小为了一半。可以用这种方法回收新生代。

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxOTAxOTE1_size_16_color_FFFFFF_t_70 1

3.标记整理算法

前面的思路和标记清除算法相同,后面不直接清理,而是让存活的对象向一端移动,然后直接清理掉边界以外的内存。适用于老年代。

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxOTAxOTE1_size_16_color_FFFFFF_t_70 2

4.分代收集算法

将java堆分为新生代和老年代,新生代总是需要回收,剩下的对象不会太多,所以新生代采用复制算法。老年代不太动用,所以可以采用标记整理算法。总的来说就是新生代和老年代采用不同的算法。

发表评论

表情:
评论列表 (有 0 条评论,134人围观)

还没有评论,来说两句吧...

相关阅读