JVM内存区域

JVM内存图
在这里插入图片描述
这是JVM给出的规范图,可以说是一个标准。
各个厂家对JVM的具体实现各有千秋。

我们熟知的Hotspot虚拟机将虚拟机栈和本地方法栈合而为一。

程序计数器

程序计数器是占用内存较小的一块内存空间,可看做一个正在执行字节码文件的行号解释器
行号解释器的工作就是,通过改变它的值来执行下一条字节码指令,是程序控制流的指示器。
多线程是通过线程轮流切换,分配处理器执行时间来实现的,所以为了切换后能恢复到正确的位置,每条线程都需要一个程序计数器

方法区

存储已被虚拟机加载的类型信息,常量,静态变量,是JVM规范里面的概念是抽象的。

在1.6的时候,Hotspot开发团队考虑到虚拟机的发展,就有将放弃永久代改为本地内存来实现方法区的想法了。

1.7之前,方法区由永久代实现1.7把常量池和静态变量放入堆中,此时方法区由堆和永久代共同实现

1.8彻底放弃永久代,该用元空间。把1.7中还剩余的内容(主要是类型信息),全部移到元空间中,此时方法区由堆(常量池,静态变量)和元空间(类型信息)实现

虚拟机栈

每个方法在执行的时候,都会创建一个栈帧,用于存储局部变量表,动态链接,操作数栈,方法出口等信息,每一个方法执行完毕,对应一个栈帧从入栈到出栈的过程。

堆内存最大,堆是被线程共享,堆的目的就是存放对象。几乎所有的对象实例都在此分配。当然,随着优化技术的更新,某些数据也会被放在栈上等。分为新生代和老年代,老年代又分为伊甸园区和from区和to区,新老比例:1:2 伊甸园区:from:to:8:1:1

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值