1. Beschreibung
(1) Just-in-Time-Kompilierungsmethode: Der Interpreter kompiliert zuerst den Bytecode in Maschinencode und führt dann den Maschinencode aus.
(2) Interpretations- und Ausführungsmethode: Der Interpreter schließt alle Vorgänge des Java-Bytecode-Programms ab, indem er jedes Mal einen kleinen Codeabschnitt interpretiert und ausführt.
Die zweite Methode wird häufig verwendet. Da die JVM-Spezifikation flexibel genug ist, kann sie Bytecode effizienter in Maschinencode umwandeln. Für Anwendungen, die höhere Anforderungen an die Laufgeschwindigkeit stellen, kann der Interpreter verwendet werden, um Java-Bytecode sofort in Maschinencode zu kompilieren und so die Portabilität und hohe Leistung von Java-Code sicherzustellen.
2. Beispiel
public static void main(java.lang.String[]); descriptor: ([Ljava/lang/String;)V flags: ACC_PUBLIC, ACC_STATIC Code: stack=2, locals=4, args_size=1 0: iconst_1 1: istore_1 2: iconst_2 3: istore_2 4: iconst_1 5: iconst_2 6: invokestatic #2 // Method calc:(II)I 9: istore_3 10: return static int calc(int, int); descriptor: (II)I flags: ACC_STATIC Code: stack=6, locals=2, args_size=2 0: iload_0 1: i2d 2: ldc2_w #3 // double 2.0d 5: invokestatic #5 // Method java/lang/Math.pow:(DD)D 8: iload_1 9: i2d 10: ldc2_w #3 // double 2.0d 13: invokestatic #5 // Method java/lang/Math.pow:(DD)D 16: dadd 17: invokestatic #6 // Method java/lang/Math.sqrt:(D)D 20: d2i 21: ireturn
Das obige ist der detaillierte Inhalt vonWelche zwei Möglichkeiten gibt es zur Ausführung von Java-Bytecode?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!