如何理解javap输出中的LocalVariableTable区域

如何理解javap输出中的LocalVariableTable区域,java,jvm,jvm-hotspot,Java,Jvm,Jvm Hotspot,源代码: public class Example { public int plus(int a){ int b = 1; return a + b; } } 上一个文件的类的取消组装结果: public int plus(int); Code: Stack=2, Locals=3, Args_size=2 0: iconst_1 1: istore_2 2: iload_1 3: iload_2 4:

源代码:

public class Example {
   public int plus(int a){
     int b = 1;
     return a + b;
   }
 }
上一个文件的类的取消组装结果:

public int plus(int);
  Code:
   Stack=2, Locals=3, Args_size=2
   0:   iconst_1
   1:   istore_2
   2:   iload_1
   3:   iload_2
   4:   iadd
   5:   ireturn
  LineNumberTable:
   line 5: 0
   line 6: 2

  LocalVariableTable:
   Start  Length  Slot  Name     Signature
   0      6       0     this     LExample;
   0      6       1     a        I
   2      4       2     b        I
我的问题是如何理解以下区域,这里的
长度
是什么意思:

  LocalVariableTable:
   Start  Length  Slot  Name     Signature
   0      6       0     this     LExample;
   0      6       1     a        I
   2      4       2     b        I
见:

Start是字节码中定义变量的行,length是定义变量的字节码行数。因此,“开始到长度”定义变量的范围。 我猜槽对应于索引,第一个变量本身大约为0,第二个变量为1,第三个变量为2,依此类推(在双精度/长精度的情况下加上附加的偏移量)