nra*_*ner 4 java bytecode java-bytecode-asm
我想知道为什么Java字节码的行号不连续.
例如,在下面的getter的(未列出的)第2行和第3行中会发生什么?
public java.lang.String getX();
Code:
0: aload_0
1: getfield #2; //Field x:Ljava/lang/String;
4: areturn
Run Code Online (Sandbox Code Playgroud)
我正在使用ASM框架来处理字节码.当使用树API访问方法的代码时,我也会获得这些"隐藏"指令(但是使用操作码-1).我想知道它们的用途.
我认为这0, 1, 4不是亚麻,而是字节码中的字节偏移.
aload_0 是一个字节getfield 是三个字节(一个操作码,一个"索引"arg,两个字节"areturn 是一个字节所以2,3只是getfield操作的一部分.