【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 操作指令及地址
相关推荐
Ming_studying5 小时前
Python + SQLite FTS5 构建本地文档全文搜索器:增量索引、中文检索与高亮
jvm·数据库·python·sqlite
乐观勇敢坚强的老彭1 天前
C++信奥:字符串的操作及应用方法
java·jvm·c++
莫得感情 o1 天前
JVM - 前沿与未来
jvm
Java成神之路-2 天前
G1 垃圾回收器 :SATB + TAMS核心机制深度解析
java·jvm
Bruce_Liuxiaowei2 天前
轻量级 IOC 管理方案:Streamlit 驱动的恶意IP情报平台
网络·jvm·网络协议·tcp/ip·安全
wuminyu2 天前
JUC组件逐层剥离与深度剖析
java·linux·c语言·jvm·c++·算法
songgz2 天前
zVM统一OS与DB
jvm·数据库·vm
songgz2 天前
ZenithVM:从虚拟机到分布式操作系统内核
jvm·分布式·vm
蓝胖的四次元口袋2 天前
JVM知识梳理(2)
jvm
蓝胖的四次元口袋2 天前
JVM知识梳理(3)
jvm