0%

java | 程序计数器

Program Counter Register 程序计数器「寄存器」

作用

1
2
3
4
5
getstatic          #20           //PrintStream out = System.out
astore_1 //--
aload_1 // out.println(1)
iconst_1 // --
invokevirtual #26 // --

上面的叫做 jvm 指令。jvm 指令到解释器,解释器翻译成机器码,才能交给 CPU 执行。

而程序计数器的作用就是记住下一条 JVM 执行的执行地址。划重点,是下一条。

当指令执行完成后,解释器会到程序计数器中获取下一条指令地址,并且执行。

物理上,程序计数器是寄存器实现的。

特点

  • 线程私有
    • 存在多线程时,在 CPU 切换时,某一个程序计数器会记录下一条执行的 jvm 地址,并且,这个程序计数器只属于这个线程
  • 不会存在内存溢出
请我喝杯咖啡吧~