当前位置:网站首页 > Java基础 > 正文

javajvm内存模型(jvm内存模型详解)

堆是java虚拟机所管理的内存中最大的一块内存区域,也是被各个线程共享的内存区域,该内存区域存放了对象实例及数组(但不是所有的对象实例都在堆中)。其大小通过-Xms(最小值)和-Xmx(最大值)参数设置(最大最小值都要小于1G),前者为启动时申请的最小内存,默认为操作系统物理内存的1/64,后者为JVM可申请的最大内存,默认为物理内存的1/4,默认当空余堆内存小于40%时,JVM会增大堆内存到-Xmx指定的大小,可通过-XX:MinHeapFreeRation=来指定这个比列;当空余堆内存大于70%时,JVM会减小堆内存的大小到-Xms指定的大小,可通过XX:MaxHeapFreeRation=来指定这个比列,当然为了避免在运行时频繁调整Heap的大小,通常-Xms与-Xmx的值设成一样。堆内存 = 新生代+老生代+持久代。在我们垃圾回收的时候,我们往往将堆内存分成新生代和老生代(大小比例1:2),新生代中由Eden和Survivor0,Survivor1组成,三者的比例是8:1:1,新生代的回收机制采用复制算法,在Minor GC的时候,我们都留一个存活区用来存放存活的对象,真正进行的区域是Eden+其中一个存活区,当我们的对象时长超过一定年龄时(默认15,可以通过参数设置),将会把对象放入老生代,当然大的对象会直接进入老生代。老生代采用的回收算法是标记整理算法。

到此这篇javajvm内存模型(jvm内存模型详解)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • java面试必备 基础知识篇(java面试必备 基础知识篇有哪些)2025-11-25 08:18:06
  • java中字符串转int(java字符转int类型)2025-11-25 08:18:06
  • java教学视频网站(java讲课视频)2025-11-25 08:18:06
  • java免费教学(java免费教学视频)2025-11-25 08:18:06
  • java字符串类型转换为int(java字符串转换成数值型)2025-11-25 08:18:06
  • java自学app(Java自学难吗)2025-11-25 08:18:06
  • java的爬虫(java爬虫步骤)2025-11-25 08:18:06
  • vscode怎么配置java环境(vscode配置java教程)2025-11-25 08:18:06
  • java spring菜鸟教程(java菜鸟入门教程)2025-11-25 08:18:06
  • java面试知识点(java面试知识点精讲原理篇)2025-11-25 08:18:06
  • 全屏图片