定义
Program Counter Register 程序计数器(寄存器)
作用
二进制字节码 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);
28: iconst_4 // --
21: invokevirtual #26 //--
24: aload_1 // out.println(5);
25: iconst_5 //--
26: invokevirtual #26 //--
29: return
jvm指令对所有平台都是一套,jvm指令接下来通过解释器转换为机器码,然后到cpu运行。
程序计数器作用是记住下一条jvm指令的执行地址(jvm指令前面的数字)
程序计数器物理上是CPU上的寄存器来实现的
特点
- 是线程私有的(程序计数器是属于自己线程的,当时间片到当前线程时会查看当前程序计数器里的指令执行地址)
- 不会存在内存溢出