打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JVM系列(六):JVM内存区域中程序计数器介绍

       

       

今天继续给大家分享JVM的相关知识,今天介绍一下JVM内存区域的程序计数器。

1、程序计数器概念

JVM中的程序计数寄存器(Program Counter Register)中Register的命名来源于CPU的寄存器,寄存器用来存储指令相关的现场信息。
CPU只有把数据装载到寄存器中才能够正常执行指令。
JVM中的寄存器不是物理上的寄存器而是对物理寄存器的抽象模拟。
程序计数器有时候也被称为为程序钩子

2、程序计数器的作用

程序计数器是JVM内存区域中一块较小的内存空间,可以认为是当前Java线程所执行的字节码的行号指示器。字节码解释器工作是通过改变这个计数器的值来定位选取下一条待执行的字节码指令,选择、循环、异常处理、线程恢复等功能都需要依赖程序计数器来完成。
       
       
说明:JVM虚拟机为了保证线程切换后还能恢复到上次正确执行的位置,JVM给每条Java线程都分配了一个独立的程序计数器,这样各线程之间计数器互不影响,独立存储和对应的Java线程生命周期保持一致。
  • 字节码解释器通过改变程序计数器来依次读取指令,从而实现Java代码的流程控制,比如:顺序执行、选择、循环、异常处理等。
  • 在多线程的情况下,程序计数器主要用于记录当前线程执行的具体位置,这样在线程切换回来的时候知道该线程从哪一个环节开始执行。

3、程序计数器的特点

  • 每个Java线程独有,与其对应的Java线程的生命周期保持一致。
  • 占用JVM内存区域很小的一块(可忽略不计),读取速度很快
  • 负责准确记录每个线程当前执行到的具体位置
  • 执行本地方法,程序计数器会存储undefined
  • JVM中唯一一个不会出现Out Of Memory Error(内存溢出错误)的区域,也不需要进行垃圾回收

IT技术分享社区

个人博客网站:https://programmerblog.xyz

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java中JVM虚拟机详解
面试刷题24:介绍一枚 JAVA妹妹?
C、C 、java程序构建元素和内存模型
计算机是如何执行指令的
JVM运行时的内存区域
JVM之内存结构详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服