温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java开发中JVM运行时内存的示例分析

发布时间:2021-09-16 09:10:45 来源:亿速云 阅读:142 作者:柒染 栏目:开发技术

这篇文章给大家介绍java开发中JVM运行时内存的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1.JVM的运行时内存也叫JVM堆

从GC的角度可以将JVM分为新生代,老年代,永久代。其中新生代默认占1/3的堆内存空间,老年代默认占2/3内存空间,永久代占非常少的堆内存空间方式。

而新生代分为Eden,SurvivorFrom,SurvivorTo区,Eden默认占8/10新生代区域空间,SurviorFrom和SurviorTo则占1/10.

java开发中JVM运行时内存的示例分析

2.JVM新创建的对象

JVM新创建的对象,除了大对象外都会放在新生代中,由于JVM会频繁创建对象,所以新生代会频繁出发MinorGC进行垃圾回收。

3.新生代详解

  •         1.Java新创建的对象先放在Eden区,如是大对象则分配到老年区。

  •         2.Eden区内存空间不足时则触发GC对新生代进行一次垃圾回收

  •         3.SurviorTo保存上一次MinorGC的幸存者

  •         4.SuviorFrom将上一次MinorGC作为这一次的扫描对象

4.老年代详解

老年代则不会频繁出发MajorGC,当MinorGC过后仍然出现老年代空间不足,则会触发MajorGC进行垃圾回收。MajorGC采用的是标记清除算法。因为要扫描老年代所有对象,所以耗时较长。

5.永久代

指的是内存永久保存区域,主要存放Class和Meta(元数据)。

关于java开发中JVM运行时内存的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI