Java JVM 执行引擎

JVM 帧栈

  • 局部变量表
    • 八大基本类型
    • 对象引用
    • return address
  • 操作数栈
  • 动态链接
  • 方法出口信息
    • 正常完成出口
    • 异常完成出口
  • 附加信息(规范之外的,取决于具体虚拟机实现)

方法调用(5条方法调用字节码指令)

  • invokestatic:调用静态方法;
  • invokespecial:调用实例构造器 方法、私有方法和父类方法
  • invokevirtual:调用所有的虚方法;
  • invokeinterface:调用接口方法,在运行时再确定一个实现此接口的对象;
  • invokedynamic:先在运行时动态解析出调用点限定符所引用的方法,然后再执行该方法。

方法调用种类:

  • 解析调用
  • 分派调用(是继承、封装和多态(尤其是重载和重写)的核心原理)
    • 静态分派
    • 动态分派