结合字节码指令理解虚拟机栈和栈帧

    科技2026-04-24  13

    官网 https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.6 栈帧:每个栈帧对应一个被调用的方法,可以理解为一个方法的运行空间。

     每个栈帧中包括:

    局部变量表,操作数栈,动态链接,方法返回地址

    局部变量表 : 方法中定义的局部变量以及方法的参数存放在这张表中 局部变量表中的变量不可直接使用,如需要使用的话,必须通过相关指令将其加载至操作数栈中作为操作数使用。 (局部变量以0,1,2这样的顺序存在) 操作数栈 : 以压栈和出栈的方式存储操作数的
    Processed: 0.009, SQL: 9