java应用开发之JVM运行时内存分析
目录
- 1.JVM的运行时内存也叫JVM堆
- 2.JVM新创建的对象
- 3.新生代详解
- 4.老年代详解
- 5.永久代
1.JVM的运行时内存也叫JVM堆 从GC的角度可以将JVM分为新生代,老年代,永久代。其中新生代默认占1/3的堆内存空间,老年代默认占2/3内存空间,永久代占非常少的堆内存空间方式。
而新生代分为Eden,SurvivorFrom,SurvivorTo区,Eden默认占8/10新生代区域空间,SurviorFrom和SurviorTo则占1/10.
文章图片
2.JVM新创建的对象 JVM新创建的对象,除了大对象外都会放在新生代中,由于JVM会频繁创建对象,所以新生代会频繁出发MinorGC进行垃圾回收。
3.新生代详解
- 1.Java新创建的对象先放在Eden区,如是大对象则分配到老年区。
- 2.Eden区内存空间不足时则触发GC对新生代进行一次垃圾回收
- 3.SurviorTo保存上一次MinorGC的幸存者
- 4.SuviorFrom将上一次MinorGC作为这一次的扫描对象
4.老年代详解 【java应用开发之JVM运行时内存分析】老年代则不会频繁出发MajorGC,当MinorGC过后仍然出现老年代空间不足,则会触发MajorGC进行垃圾回收。MajorGC采用的是标记清除算法。因为要扫描老年代所有对象,所以耗时较长。
5.永久代 指的是内存永久保存区域,主要存放Class和Meta(元数据)。
以上就是java应用开发之JVM运行时内存分析的详细内容,更多关于JVM运行时内存的资料请关注脚本之家其它相关文章!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 开学第一天(下)
- 20170612时间和注意力开销记录
- JS中的各种宽高度定义及其应用
- 深入理解Go之generate
- 开花店的前景怎么样()
- 眉头开了
- 上班后阅读开始变成一件奢侈的事
- 小影写在2018九月开学季