JVM运行时数据区的整体结构和PC寄存器

7 篇文章 0 订阅

        作者处于学习阶段,正在学习jvm,作为学生,我会用更通俗的说法,来叙述自己对jvm的了解。愿各位大佬看到有见解错误的地方和叙述不好的地方,能够帮忙纠正。来帮助大家更加深入的了解jvm。

1、运行时数据区的整体结构如下:

2、在java虚拟机中使用的运行时数据区中,有些会随着虚拟机退出而销毁,另外有一些是与线程一并销毁的。我个人的理解就是,虚拟机对应着一个进程,而进程中又有多个线程。其中临时存储的与线程相挂钩,而需要长久保留的是需要存储与整个进程之中。

线程独有程序计数器、虚拟机栈栈、本地方法栈
线程共享堆,方法区

3.程序计数器(PC寄存器)

        JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟,在我们学习计算机组成原理时,也同样学习过PC寄存器,在组成原理中,PC寄存器是计数的,用来存储下一条指令的地址。而JVM中的PC寄存器也同样模拟出了该效果。

        作用:PC寄存器用来存储指令向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。

        PC寄存器是一块很小的内存空间,几乎忽略不记。也是运行速度最快的存取区域(说白了,它只需要存取下一个指令的地址,它只需要存下一条指令,出下一条指令,存的少,操作少,必然最快) 在JVM规范中,每个线程都有自己的程序计数器,线程私有,他的生命周期与线程相同。

        任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的Java方法的JVM指令地址;或者,如果是在执行native方法,则是未指定值(undefned)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱分享的小邓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值