栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

说一下JVM垃圾回收算法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

说一下JVM垃圾回收算法

我们把一块连续的 内存区域划分成大小相等的块,这些块按照使用情况分为 未使用内存(可用内存),可回收内存(死亡对象),存活对象

1.1 标记清除算法

​ 标记死亡对象所在的内存块为可回收内存,然后回收这些内存块

​ 缺点:
1.效率问题 回收后遗留下来的存活对象和未使用内存都是不连续的,下次利用内存块和回收内存块的速度慢

​ 2.空间问题 回收后产生大量不连续的碎片.

1.2 复制算法

​ 内存区域划分为大小相同的两个区域,每次只使用其中一个区域,使用的区域标记清除完后,把还存活的对象以紧邻的方式 复制到另一区域,如此往复

1.3 标记整理算法

把存活对象向一端移动,以紧邻的方式存放 ,然后把其余对象清理掉

1.4 分代收集算法

这是虚拟机垃圾收集采用的算法,

根据对象存活周期不同,划分为几个内存空间。

JVM(java virtual machine)的堆(heap,jvm的内存,线程共享,用于存放对象) 分为新生代(年轻代)和老年代,

新生代又分为伊甸园区(Eden)和 两个幸存者区(survivor1和survivor2),新生代中大量对象死去,少量对象留存,只要付出少量对象的复制成本就可以实现垃圾收集,因此采用 复制算法

老年代 的对象存活几率高,而且没有额外的空间对象进行分配担保,必须选择标记清除或者标记整理算法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709431.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号