当前位置:网站首页>JVM:运行时数据区-PC寄存器(程序计数器)
JVM:运行时数据区-PC寄存器(程序计数器)
2022-08-01 06:43:00 【谷咕咕】
JVM:运行时数据区
1.什么是pc寄存器:
JVM的pc寄存器也叫程序计数器,是对物理pc寄存器的一种抽象虚拟。
用来存储指向一下条指令的地址,即将要执行的指令代码,由执行引擎读取下一条指令。
2.pc寄存器特点:
每一个线程都有一个pc寄存器,pc寄存器会存储当前线程正在执行的java方法的jvm的指令地址:如果是本地方法就是undefined(本地方法指c或c++的代码)。
3.javap反编译id后的代码,左边的就是指令地址,右边的即为指令代码,pc寄存器存储指令地址,执行引擎去pc寄存器中读取存储指令地址对应的指令代码。
4.程序的分支,循环,跳转,异常的处理,线程恢复,依赖pc寄存器。
字节码解释器工作时,就是通过改变这个计数器的值来迭代,读取下一条要执行的字节码指令。
他是唯一一个,在java虚拟机规范中没有oom情况的区域。
方法区、堆有gc
栈和pc寄存器无gc
pc寄存器的两个问题:(八股文)
pc寄存器存储字节码指令地址有什么用呢?
cpu需要不停的切换线程,线程切换回来之后需要从哪里继续执行,就需要pc寄存器来告知。
为什么使用pc寄存器记录当前线程的执行地址呢?
字节码解释器需要通过改变pc寄存器的值来明确下一条应该执行什么样的字节码指令。
边栏推荐
- R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:gtExtras包的pad_fn函数与gt::fmt函数一起用于填充包含数值的特定列、对数据列的数值进行十进制对齐(从小数点对齐)
- 七、MFC序列化机制和序列化类对象
- Explosive 30,000 words, the hardest core丨Mysql knowledge system, complete collection of commands [recommended collection]
- 我三本学历,五面阿里,被面试官“供”着出来了,拿了33*15的Offer
- Classwork (7) - #598. remainder operation (mod)
- NUMPY
- 数据湖:数据同步工具NiFi
- LeetCode 0149. 直线上最多的点数
- 金山打字通 官网 下载
- 轻量级的VsCode为何越用越大?为什么吃了我C盘10G?如何无痛清理VsCode缓存?手把手教你为C盘瘦身
猜你喜欢
随机推荐
【南瓜书ML】(task4)神经网络中的数学推导(更新ing)
2022年牛客多校第四场补题
2022.7.26 模拟赛
WebSocket实现聊天功能
安装SQL Server详细教程
MVVM project development (commodity management system 1)
点餐系统数据库设计--SQL Server
响应式织梦模板园林花卉类网站
"By sharing" northwestern university life service | | bytes a second interview on three sides by HR
深度比较两个对象是否相同
阿里三面:MQ 消息丢失、重复、积压问题,该如何解决?
MVVM项目开发(商品管理系统一)
从底层结构开始学习FPGA(6)----分布式RAM(DRAM,Distributed RAM)
NUMPY
uva12326
How JS works
NIO编程
R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:gtExtras包的pad_fn函数与gt::fmt函数一起用于填充包含数值的特定列、对数据列的数值进行十进制对齐(从小数点对齐)
Srping中bean的生命周期
leetcode125 Verify palindrome string








