JVM内存模型

本文详细介绍了JVM的内存模型,包括堆内存的新生代与老年代划分,新生代中的Eden、S0、S1区的作用,以及如何通过这种设计减少内存碎片。此外,还提及了老年代对活跃及大对象的处理,以及新生代和老年代的默认比例配置。最后提到了监控JVM状态的工具jvisualVM及其插件下载。
摘要由CSDN通过智能技术生成

 

内存模型图: 
    一、堆内存划分
        1.新生代(Eden:s0:s1=8:1:1)   (对应Minor GC)
            1.1 Eden区
                新建对象存放在该区
            1.2 Survivor区

            1.2.1 S0区(from)
                在Eden区活跃的对象会被移到该区
            1.2.2 S1区(to)

              同S0区一样,但S0和S1必定有一个是空闲的。S0和S1大小相等,主要用于复制算法的交换,减少碎片化


            设计成三个区主要是为了解决内存碎片的问题,通过浪费10%的空间来处理碎片化问题是可以接收的。


        2.老年代 (对应Major GC)
            存放比较活跃的对象,经常被引用的对象(被GC验证过多次大于15次,就会从新生代移至老年代),或者大对象放不下的情况会触发一个担保机制,会去借用Old区的空间。
       
        新生代和老年代的默认比例是1:2(可以配置比例)


        Young区和Old区一起GC( Full GC)
          
    二、监控工具
        1.jvisualVM(要先配好环境变量)
        2.需要下载插件
            https://visualvm.github.io/pluginscenters.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值