微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JVM 垃圾收集算法

JVM一共有四种垃圾收集算法:标记-清除算法,复制算法,标记-整理算法,分代垃圾收集算法

1、标记-清除算法

分为两个阶段:标记和清除阶段。

这个算法⾸先标记出所有还存活的对象,回收掉所有没被标记的对象

优点是:实现简单

缺点就是:回收效率低,会产生大量的内存碎片,导致无法给大对象分配内存空间

 

2、复制算法

它将内存区域分为相等的两块,每次只使用其中的一块。

当正在使用的这一块区域用完了,就将还存活的对象复制到另外那块区域中,然后集中对之前使用的那块进行清理。

缺点就是:只使用了一半的内存空间,空间利用率地低

 

3、标记-整理算法

这个算法标记出所有存活的对象,然后将他们整理并移动到内存区域的一端。然后清理掉存活对象所占区域边界以外的区域

优点:不会产生碎片空间

缺点:需要移动大量对象,处理效率比较低

 

4、分代垃圾收集算法

现在的商业虚拟机一般都采用这种算法。

这个算法根据对象存活周期,将内存分为几块(新生代-老年代-永久代),不同的快采取不同收集算法。

新生代采用:复制算法

老年代采用:标记-清除算法 或者 标记-整理算法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐