1.程序计数器_介绍
1.程序计数器的物理上实现叫寄存器,是一块较小的内存区域
2.存储当前线程所执行的字节码指令(下一条指令)的执行位置
3.分支、循环、跳转、异常、线程恢复等都依赖于计数器
2.程序计数器_JVM指令的执行流程
JVM指令->解释器->翻译成[机器码]->交给CPU执行
3.程序计数器_示例
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
4.程序计数器_特点
1.线程私有的【分支、循环、跳转、异常、线程恢复等都依赖计数器】
2.不会存在内存溢出
3.执行native本地方法时,程序计数器的值为空