JVM字节码执行引擎

介绍

介绍JVM字节码执行引擎。

一、字节码执行引擎

二、运行时栈帧结构

三、局部变量表

问题:long和double在32位操作系统是不是原子操作?

因为slot存放的是32位内的数据类型,在多线程情况下分高低位赋值和更新,不是原子性操作。

四、操作数栈

五、方法返回地址

六、方法调用

  • 动态链接

  • 静态链接

    符号引用 —> 直接引用

  • 非虚方法

    • invokestatic:静态方法
    • invokespecial:构造函数
    • invokevirtual:虚函数调用
  • 虚方法

    需要我们在执行阶段确定需要执行的版本。

七、虚拟机动态分派机制

  • 虚方法表

    一般是在类加载的阶段进行初始化。