介绍
介绍JVM字节码执行引擎。
一、字节码执行引擎
二、运行时栈帧结构
三、局部变量表
问题:long和double在32位操作系统是不是原子操作?
因为slot存放的是32位内的数据类型,在多线程情况下分高低位赋值和更新,不是原子性操作。
四、操作数栈
五、方法返回地址
六、方法调用
动态链接
静态链接
符号引用 —> 直接引用
非虚方法
- invokestatic:静态方法
- invokespecial:构造函数
- invokevirtual:虚函数调用
虚方法
需要我们在执行阶段确定需要执行的版本。
七、虚拟机动态分派机制
虚方法表
一般是在类加载的阶段进行初始化。