JVM的内存结构

本文详细介绍了JVM的内存结构,包括堆内存、方法区、栈、程序计数器和方法区等。堆内存由年轻代和老年代组成,年轻代又分为Eden、From Survivor和To Survivor空间。栈与线程生命周期同步,每个方法执行对应一个栈帧。方法区存储类信息、常量和静态变量。程序计数器记录字节码执行位置。各种OutOfMemoryError异常与不同内存区域的溢出有关。
摘要由CSDN通过智能技术生成

JVM的内存结构

       先上一副网图说明JVM内存布局:

       

       JVM的内存结构主要有三大块:堆内存、方法区和栈。

       堆由年轻代和和老年代组成,而年轻代又分成三个部分,Eden空间、From Survivor空间、To Survivor空间,默认情况下,年轻代按照8:1:1的比例来分配。

        对于这些内存空间的大小,可通过一些虚拟机命令进行控制:

        -Xms设置堆的最小空间大小。

        -Xmx设置堆的最大空间大小。

        -XX:NewSize设置新声代最小空间大小。

        -XX:MaxNewSize设置新生代最大空间大小。

        -XX:PermSize设置永久代最小空间大小。

        -XX:MaxPermSize设置永久代最大空间大小。

        -Xss:设置每个线程的堆栈大小。

        没有直接设置老年代大小的参数,但可以间接的进行控制:

        老年代空间大小 = 堆空间大小 - 年轻代空间大小

现在对每个区进行介绍:

        栈:java虚拟机栈是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是Java方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作栈、动态链接、方法出口等信息。每一个方法被调用直至执行完成的过程,就对应一个栈帧在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值