jvm 局部变量表

局部变量表建立在jvm栈的栈帧中,局部变量表最基本的单位是槽(slot),其个数在编译时就已经定好了,

 

 

 

 

 如图

该方法的局部变量表的大小就应该是args+a=2

 

 

 使用反编译工具jclasslib查看后确实是2

查看局部变量表的详细信息

 

 起始pc是指字节码指令的行号

 它与行号共同构成了该变量的作用域

描述符前面加[代表是数组

注意

如果是非static方法 会有一个多一个this,this被放在索引0处

 

 

 行号对应表是对应了字节码指令和源文件行号的对应关系

 

槽是可以重复使用的 比如

 

 槽的数量就应该是3

 

 

 前面已经说了,局部变量的桶(Solt)是可以重复使用的,如果使用前不确保初始化,则可能会使用脏数据

posted @ 2022-08-06 20:43  dronff  阅读(114)  评论(0)    收藏  举报