您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Java字節碼執行的兩種方式是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Java字節碼執行的兩種方式是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
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字節碼執行的兩種方式是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。