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 @ 2023-05-19 14:43  xingmeng1  阅读(31)  评论(0编辑  收藏  举报