JVM 虚拟机栈

虚拟机栈:

  栈元素是栈帧。方法调用,栈帧入栈,反之出栈。

栈帧:一个方法的运行空间。

  1、局部变量表:方法定义的局部变量、方法的参数存在该表。

    实例方法中有个隐含参数“this”,所以实例方法可以访问该类的实例变量和其他实例方法。

    局部变量表中变量的存放顺序:this(如果是实例方法)=>参数(如果有)=> 定义的局部变量(如果有)

    slot是局部变量表中的空间单元,虚拟机规范规定:1、32位之内的数据,用一个slot来存放,如int、short、float等;2、64位的数据用连续两个slot来存放,如long、double;3、引用类型可32位亦可64位。

  2、操作数栈:用来存放操作数。

  局部变量表中的变量是不可直接使用的,如需使用必须通过相关指令将其加载至操作数栈中作为操作数使用。

  

猜你喜欢

转载自www.cnblogs.com/natian-ws/p/10722937.html