JVM堆详解

 

1、在JVM堆空间可以分为三个大区:新生代、老年代、永久代。

2、新生代可以划分为三个区,Eden区,两个幸存区。

 

在JVM运行时,可以通过配置一下参数改变整改JVM堆 的配置

1.JVM运行时堆的大小  -Xms堆的最小值  -Xmx堆空间的最大值2.新生代堆空间大小调整  -XX:NewSize新生代的最小值  -XX:MaxNewSize新生代的最大值  -XX:NewRatio设置新生代与老年代在堆空间的大小  -XX:SurvivorRatio新生代中Eden所占区域的大小3.永久代大小调整  -XX:MaxPermSize4.其他   -XX:MaxTenuringThreshold,设置将新生代对象转到老年代时需要经过多少次垃圾回收,但是仍然没有被回收

 

 

JVM的垃圾收集机制(复制算法也叫copy算法)

将内存平均分成A、B两块,算法过程:

1. 新生对象被分配到A块中未使用的内存当中。当A块的内存用完了, 把A块的存活对象对象复制到B块。
2. 清理A块所有对象。
3. 新生对象被分配的B块中未使用的内存当中。当B块的内存用完了, 把B块的存活对象对象复制到A块。
4. 清理B块所有对象。
5. goto 1。

优点:简单高效。缺点:内存代价高,有效内存为占用内存的一半。

 

posted @   xingmeng1  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示