Ich bin dabei blog zu studieren Java zu Bytecode & Ich habe Bytecode für diese SimpleClass generiert.Verständnis Bytecode für eine einfache Java-Klasse generiert
public class SimpleClass {
public int simpleF = 5;
}
Ich verstehe die Bytecode-Positionen wie unten
- 0 ist für 'this'
- 1 ist der Konstruktor von Super Objekt für den Aufruf.
- 4 -?
- 5 für Wert 5
- 6 Pop von Stapel und zuweisen 5 bis Variable.
Aber ich verstehe nicht aload_0
an Position 4 und seinen Zweck?
// 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
}
kann ich nur empfehlen, die JVM-Spezifikation nachschlagen, wo jeder Opcode eine zu einer Seite erklärt:
Weitere Informationen finden Sie in diesem Artikel. Zu breit, um hier zu antworten. – EJP