6. 运行时数据区-程序计数器和栈帧

立山  金牌会员 | 2024-7-29 23:11:10 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 997|帖子 997|积分 2991

运行时数据区分类

Java虚拟机在运行Java程序过程中管理的内存区域,称之为运行时数据区。运行时数据区分为两大类,线程共享和线程不共享,线程共享的有:

  • 方法区

线程不共享的有:

  • 程序计数器
  • Java虚拟机栈
  • 当地方法栈
程序计数器

程序计数器也叫做PC寄存器,PC寄存器是用来存储指向下一条指令的内存地点,也即将将要执行的指令代码,由执行引擎读取下一条指令,在执行完毕当前指令之后,JVM的执行引擎会通过程序计数器获取下一条指令的地点来执行后续指令



栈帧的组成

当前类的字节码指令引用了其他类的属性大概方法时,需要将符号引用(编号)转换成对应的运行时常量池中的内存地点。动态链接就生存了编号到运行时常量池的内存地点的映射关系。

栈帧的组成分为:

  • 局部变量表:局部变量表的作用是在运行过程中存放所有的局部变量
  • 操作数栈:操作数栈是栈帧中虚拟机在执行指令过程中用来存放临时数据的一块区域
  • 帧数据:帧数据主要包罗动态链接、方法出口、非常表的引用

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立山

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表