JVM基础篇-程序计数器

这篇具有很好参考价值的文章主要介绍了JVM基础篇-程序计数器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

程序计数器

定义

Program Counter Register 程序计数器(寄存器)

  • 作用:记住下一条jvm指令的执行地址
  • 特点
    • 是线程私有的:每个线程都有自己的程序计数器
    • 不会存在内存溢出(规定)

JVM基础篇-程序计数器,JVM,jvm

作用

左侧:jvm指令 右侧:java代码

0: getstatic     #20     // PrintStream out = System.out;
3: astore_1              // --
4: aload_1               // out.println(1);
5: iconst_1              // --
6: invokevirtual #26     // --
9: aload_1               // out.println(2);
10: iconst_2             // --
11: invokevirtual #26    // --
14: aload_1              // out.println(3);
15: iconst_3             // --
16: invokevirtual #26    // --
19: aload_1              // out.println(4);
20: iconst_4             // --
21: invokevirtual #26    // --
24: aload_1              // out.println(5);
25: iconst_5             // --
26: invokevirtual #26    // --
29: return
  • 解释器将jvm指令解释为机器码,然后交给CPU去执行,同时将下下一条指令地址放入程序计数器,等待当前指令执行完成后,解释器会去程序计数器中读取下一条指令的地址,然后重复执行

  • JVM指令 -> 解释器 -> 机器码 -> CPU

  • 程序计数器的物理实现方式为寄存器文章来源地址https://www.toymoban.com/news/detail-619363.html

到了这里,关于JVM基础篇-程序计数器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JVM第三篇 运行时数据区-虚拟机栈和PC程序计数器

    目录 1. JAVA中的线程  2.  栈区  2.1 栈帧 2.2 栈可能出现的异常 2.3 设置栈大小 3.程序计数器(PC)  4. PC和栈发挥的作用  5. 关于栈的常见面试题        虚拟机包含三大部分,类加载子系统,运行时数据区,执行引擎。运行时数据区又包含方法区,堆区,栈区,程序计数器,

    2024年02月11日
    浏览(48)
  • [JVM] 5. 运行时数据区(2)-- 程序计数器(Program Counter Register)

    JVM中的程序计数器(Program Counter Register)是对物理PC寄存器的一种抽象模拟。 它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域。 在 JVM 规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致。 任何时间一

    2024年02月16日
    浏览(87)
  • JVM内存管理、内存分区:堆、方法区、虚拟机栈、本地方法栈、程序计数器

    线程共享 堆         存放 实例 ,字符串常量(直接引用),静态变量,线程分配缓冲区(TLAB线程私有)。 垃圾收集器 管理的区域 方法区         非堆,和堆相对的概念。存储已被虚拟机加载的 类型信息 、常量、静态变量、即时编译器编译后的代码缓存等数据,内

    2024年02月10日
    浏览(41)
  • 基于OpenCV和PyQt5的跳绳计数器应用程序

    本文将介绍一个基于OpenCV和PyQt5的跳绳计数器应用程序。该程序可以使用计算机摄像头来检测跳绳动作,并计算跳绳次数。本文将介绍程序的实现方法和实现细节,包括背景减除算法和轮廓检测算法的使用。 背景减除算法是一种常用的图像处理技术,用于从静态摄像头拍摄的

    2024年02月07日
    浏览(68)
  • 【单周期CPU】LoongArch | 32位寄存器DR | 32位的程序计数器PC | 通用寄存器堆Registers | 32位RAM存储器

    前言: 本章内容主要是演示在vivado下利用Verilog语言进行单周期简易CPU的设计。一步一步自己实现模型机的设计。本章先介绍单周期简易CPU中基本时序逻辑部件设计。 💻环境:一台内存4GB以上,装有64位Windows操作系统和Vivado 2017.4以上版本软件的PC机。 💎本章所采用的指令为

    2024年02月12日
    浏览(49)
  • 【JVM基础】JVM入门基础

    应用程序(Java应用程序)在JRE上运行(JRE包含JVM),JRE在操作系统(Windows、Mac)上运行,操作系统在硬件体系(Intel、Spac…)上运行。 Sun公司:HotSpot 用的最多(我们使用) BEA:JRockit IBM:J9VM JVM 调优:99%都是在方法区和堆,大部分时间调堆。 JNI(Java Native Interface):本地

    2024年02月10日
    浏览(41)
  • JVM 虚拟机 ---> JVM 基础概念

    一、Java 跨平台 Java是一种 可跨平台 的编程语言,我们通常把 CPU 处理器与操作系统构成的计算机系统整体成为叫 平台 不同的 CPU ,差异主要在底层指令集不同,指令集分为精简指令集( RISC )和复杂指令集( CISC )。每个 CPU 都有自己的特定指令集 **指令集:**是CPU中用来计

    2024年02月09日
    浏览(41)
  • JVM基础(1)——JVM类加载机制

    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖,挖的越深,基础越扎实! 阶段1、深入多线程 阶段2、深入多线程设计模式 阶段3、深入juc源码解析

    2024年02月02日
    浏览(51)
  • JVM基础(4)——JVM存活判定算法

    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖,挖的越深,基础越扎实! 阶段1、深入多线程 阶段2、深入多线程设计模式 阶段3、深入juc源码解析

    2024年02月02日
    浏览(43)
  • JVM基础(5)——JVM垃圾回收算法

    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖,挖的越深,基础越扎实! 阶段1、深入多线程 阶段2、深入多线程设计模式 阶段3、深入juc源码解析

    2024年02月02日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包