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

JVM垃圾回收算法

1.标记-清除算法
标记:遍历所有的GC Roots 然后将所有可达对象标记为存活对象;
清除:遍历堆中的所有对象,然后将没有标记的对象清除。
2.标记整理算法
标记:遍历所有的GC Roots 然后将所有可达对象标记为存活对象;
整理:移动所有存活的对象,且按照内存地址次序依次排列,然后将末端内存地址以后的内存全部回收。
3.复制算法
将原有的内存空间一分为二,每次只用其中的一块,在垃圾回收时,将正在使用的对象复制到另外一个内存空间中,然后将该内存空间清空,交换两个内存的角色,完成垃圾回收。
4.分代算法
年轻代-老年代-元数据区(之前永久代)
1个Eden区和2个Survivor区(分别叫from和to)认比例为8:1:1,一般情况下,新创建的对象都会被分配到Eden区(一些大对象特殊处理),这些对象经过第一次GC后,如果仍然存活,将会被移到Survivor区。在Survivor区中每熬过一次Minor GC,年龄就会增加1岁,当它的年龄增加到16时,就会被移动到老年代中。
 年轻代:复制算法
老年代: 标记整理算法

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

相关推荐