1:PC寄存器的介绍
它是一块很小的内存空间,几乎可以忽略不计,也是运行速度最快的存储区域
在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致
2:PC寄存器的作用:(记录代码执行的下一个地址)
任何时间,一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的java方法的JVM之力宁地址。如果是正在执行native方法,则是为指定值(undefied)
比如上面的一张图:执行代码的引擎,正在执行一个java代码,那么下一行的代码是执行哪一行,就是根据PC寄存器的给出的地址去执行
3:其他作用:它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个PC寄存器来完成。
字节码解释器工作室就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。
PC寄存器也是唯一一个在java虚拟机规范中没有规定任何 OutOrMemotyError情况的区域
面试扩展: