Java バイトコードを実行する 2 つの方法は何ですか?

WBOY
リリース: 2023-04-28 09:34:06
転載
1379 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート