这是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

但是哪个字节码更像raw?据我了解,javap为其添加了一些样式,因此第二个示例应该是更真实的bytecode
我对吗?

最佳答案

这些都不是更原始。呈现完全相同的信息只有两种不同的方式。

10-08 11:03