来自颜群老师的JVM课程
JVM运行时区域
程序计数器
行号指示器,指向当前线程锁执行的字节码指令的地址
例如:
int a = 0; // 1
int b = 10; // 2
if(a < b){ // 3
… // 4-10
}else //11
while(){
…
}
这个行号是根据.class中程序计数器所维护的,理解为class文件中的行号
在执行判断、循环部分的时候,程序计数器会根据行号来进行推断下一步该如何执行
注意:
- 本地方法不归程序计数器管,即native修饰的方法,则程序计数器的值为undefinded
- 程序计数器是唯一一个不会产生“内存溢出”的区域
- 其他语言仍然保留goto关键字,其作用就是修改程序计数器的值,使程序跳转到指定的行数执行。
在java中,goto已经变成了唯一的保留字