程序计数器
定义
Program Counter Register 程序计数器(寄存器)
- 作用:记住下一条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
-
程序计数器的物理实现方式为寄存器