首頁 >Java >java教程 >Java字節碼執行的兩種方式是什麼

Java字節碼執行的兩種方式是什麼

WBOY
WBOY轉載
2023-04-28 09:34:061414瀏覽

1、說明

(1)即時編譯方式:解釋器先將字節碼編譯成機器碼,然後再執行該機器碼。

(2)解釋執行方式:解釋器透過每次解釋並執行一小段程式碼來完成Java字節碼程式的所有操作。

常用的是第二種方法。因為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字節碼執行的兩種方式是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除