这是当我让 javap
显示我编译的类(我选择方法)时生成的代码
int multiply(int, int);
flags:
Code:
stack=2, locals=3, args_size=3
0: iload_1
1: iload_2
2: imul
3: ireturn
LineNumberTable:
line 2: 0
LocalVariableTable:
Start Length Slot Name Signature
0 4 0 this LMyClass;
0 4 1 a I
0 4 2 b I
下面是代码,通过groovyConsole
显示(同方法)
public multiply(II)I
L0
LINENUMBER 4 L0
ILOAD 1
ILOAD 2
IMUL
IRETURN
L1
LDC 0
IRETURN
LOCALVARIABLE this LMyClass; L0 L1 0
LOCALVARIABLE a I L0 L1 1
LOCALVARIABLE b I L0 L1 2
MAXSTACK = 2
MAXLOCALS = 3
但是哪些字节码更原始
?据我了解,javap
为其添加了一些样式,因此第二个示例应该是更真实的 bytecode
。
我说得对吗?
最佳答案
这些都不是更原始的。完全相同的信息只有两种不同的呈现方式。
关于java javap和groovy字节码比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36150345/