JVM基础篇-程序计数器

程序计数器

定义

Program Counter Register 程序计数器(寄存器)

  • 作用:记住下一条jvm指令的执行地址
  • 特点
    • 是线程私有的:每个线程都有自己的程序计数器
    • 不会存在内存溢出(规定)

JVM基础篇-程序计数器_第1张图片

作用

左侧: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

  • 程序计数器的物理实现方式为寄存器

你可能感兴趣的:(JVM,jvm)