我正在关注此blog以研究java到字节码&我已经为此SimpleClass生成了字节码。了解为简单Java类生成的字节码
public class SimpleClass {
public int simpleF = 5;
}
我理解的字节码位置如下
- 0为 '这个'
- 1是用于调用超 对象的构造。
- 4 - ?
- 5代表5
- 6从堆栈中弹出并将5分配给 变量。
但我不明白aload_0
在位置4及其目的?
// Compiled from SimpleClass.java (version 1.6 : 50.0, super bit)
public class SimpleClass {
// Field descriptor #6 I
public int simpleF;
// Method descriptor #8()V
// Stack: 2, Locals: 1
public SimpleClass();
0 aload_0 [this]
1 invokespecial java.lang.Object() [10]
4 aload_0 [this]
5 iconst_5
6 putfield SimpleClass.simpleF : int [12]
9 return
Line numbers:
[pc: 0, line: 2]
[pc: 4, line: 4]
[pc: 9, line: 2]
Local variable table:
[pc: 0, pc: 10] local: this index: 0 type: SimpleClass
}
我只能建议你查查JVM规范,每一个操作码解释一个页面。在这里回答太宽泛。 – EJP