用户工具


  • 每个线程独立的执行方法
  • 每个方法在执行过程中生成一个栈帧

局部变量表(核心结构)

存放方法的参数,以及方法内定义的局部变量

操作数栈(核心结构)

执行虚拟机指令时需要的数据会先被放入这个栈中

虚拟机的指令(push、load、store)等。就是将数据在操作数栈、局部变量表之间移动

push 100 // 将100 放入操作数栈顶
store // 将操作数栈顶的数据放入局部变量表
load // 将局部变量表中的数据放入操作数栈顶
iadd // 将操作数栈顶的2个数据相加,并放入栈顶

方法调用

如何确认调用哪个方法???

  • 编译时确认
    • 参数不同(重载)。编译阶段就可以确认调用哪个函数
  • 运行时确认
    • 继承(重写)。运行时才能决定调用哪个函数。