目录
JVM运行时区域内部结构:
一.PC寄存器的特点:
- 它是一块很小的的内存空间,几乎可以忽略不记。也是运行速度最快的区域
- 在jvm规范中,每个线程都有它自己的程序技术器。是线程私有的,声明周期与线程的生命周期保持一致。
- 在任何时间一个线程都要一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的java方法的jvm指令地址。
二.PC寄存器的作用:
PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。
我们先来看一下这个程序
它的字节码文件如图所示:
每条指令地址对应一个操作指令,而运行操作指令需要将指令地址装载到PC寄存器上。然后执行引擎在PC寄存器上通过指令地址找到操作指令,然后运行。
三.面试中的两个常见的问题:
1.使用PC寄存器的存储字节码指令地址有什么作用?
2.为什么使用PC寄存器记录当前线程的执行地址?
其实这是一个问题。
- 因为CPU需要不停的切换各个线程,这时候切换回来以后,就得知道接着从哪开始继续执行
- JVM的字节码解释器就需要通过改变PC寄存器的值来明确下一条应该执行什么样的字节码指令。