【jvm】程序计数器

目录

      • 一、介绍
      • 二、作用
      • 三、示例
        • [3.1 代码](#3.1 代码)
        • [3.2 javap -v Test1.class](#3.2 javap -v Test1.class)
          • [3.2.1 操作指令及地址](#3.2.1 操作指令及地址)

一、介绍

  • 1.jvm中的程序计数寄存器中(program counter register),register的命名源于cpu的寄存器,寄存器存储指令相关的现场信息
  • 2.cpu只有把数据装载到寄存器才能够运行
  • 3.不是广义上的物理寄存器,是pc计数器或指令计数器,也称程序钩子
  • 4.jvm中的pc寄存器是对物理pc寄存器的一种抽象模拟
  • 5.是一块很小的内存空间,几乎可以忽略不记
  • 6.是运行速度最快的存储区域
  • 7.在jvm规范中,每个线程都有各自的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致
  • 8.任何时间一个线程都只有一个方法在执行,即当前方法
  • 9.程序计数器会存储当前线程正在执行的java方法的jvm指令地址,如果在执行native本地方法,则是未指定值undefined
  • 10.是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成
  • 11.字节码解释器工作时是通过改变这个计数器的值来选取下一条需要执行的字节码指令
  • 12.是唯一一个在java虚拟机规范中没有规定任何OutOfMemoryError情况的区域

二、作用

  • 1.pc寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码
  • 2.由执行引擎到pc寄存器中拿到指令地址,根据指令地址读取下一条指令

三、示例

3.1 代码
复制代码
package com.learning.pc_register;

/**
 * @Author wangyouhui
 **/
public class Test1 {
    public static void main(String[] args) {
        int i = 10;
        int j = 20;
        int k = i + j;
    }
}
3.2 javap -v Test1.class
3.2.1 操作指令及地址
相关推荐
WPF工业上位机9 小时前
YXGK.FakeVM数据库示例
jvm·数据库·oracle
吴声子夜歌15 小时前
JVM——线程通信原理
jvm
吴声子夜歌15 小时前
JVM——线程同步机制
jvm·线程同步机制
basketball61615 小时前
C++进阶:3. unique_ptr 现代C++内存管理的基石
java·jvm·c++
一只小白00018 小时前
【JVM | 第四篇】—— JVM 内存分配
jvm·面试
weelinking1 天前
【产品】12_接入数据库——让数据永久保存
jvm·数据库·python·react.js·数据挖掘·前端框架·产品经理
gsls2008081 天前
JVM 堆内存参数 & Docker 容器适配,一次讲清楚
jvm·docker·容器
light blue bird1 天前
支组汇总主子节点工序路径图表
前端·jvm·.net·桌面端·gdi绘图
Access开发易登软件2 天前
Access 用 VBA 操作 SQLite,不用装任何驱动
jvm·数据库·sqlite·vba·access·access开发
Niyy_2 天前
WASM 的使用笔记
jvm·笔记·wasm