1. 説明
(1) ジャストインタイムコンパイル方式: インタプリタはまずバイトコードをマシンコードにコンパイルし、次にマシンコードを実行します。
(2) 解釈と実行方法: インタプリタは、毎回小さなコードを解釈して実行することによって、Java バイトコード プログラムのすべての操作を完了します。
2 番目の方法が一般的に使用されます。 JVM 仕様は十分に柔軟であるため、バイトコードをより効率的にマシンコードに変換できます。実行速度に対するより高い要件があるアプリケーションの場合、インタプリタを使用して Java バイトコードをマシン コードに即座にコンパイルできるため、Java コードの移植性と高いパフォーマンスが保証されます。
2.例
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
以上がJava バイトコードを実行する 2 つの方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。