在我們工作、學習、以及研究 JVM 過程當中,不可避免的要檢視 Java 位元組碼,通過檢視位元組碼可以了解一個類的編譯結果,也能通過編譯器層面來分析一個類的性能。
位元組碼檔案是不能直接打開的,下面棧長教大家幾種簡單的方法如何檢視 Java 位元組碼。
1、使用 javap 指令檢視位元組碼
指令格式如下:
javap -c xxx.class
JDK 提供的了,不解釋,來,示範操作一把:
$ javap -c Test.class
Compiled from "Test.java"
public class com.test.Test {
public com.test.Test();
Code:
0: aload_0
1: invokespecial #8 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: return
}
如上所示,可以看到 Test 類的的位元組碼。
2、Intellij IDEA 中檢視位元組碼
Intellij IDEA 直接內建了一個工具菜單,可以直接檢視位元組碼,打開
ByteCode
插件視窗方法如下:
View -> Show bytecode如圖所示,可以看到 String 類的的位元組碼。
是不是很友善?
如果看不到這個菜單,那可能你目前的類沒有編譯,需要你編譯一下。
不會用 Intellij IDEA 的可以關注公衆号:Java技術棧,在背景回複:IDEA,可以擷取棧長整理的曆史教程,都是無廢話幹貨。
想當初從 Eclipse 轉 IDEA 數次都失敗,現在早習慣了,說實話寫代碼是真智能,基友搭配,效率翻倍。
3、Eclipse 中檢視位元組碼
在 Eclipse 中檢視位元組碼稍顯麻煩,需要安裝插件,并打開插件視窗,安裝和使用方式如下:
Name: bytecode
Location:
http://andrei.gmxhome.de/eclipse安裝完後需要重新開機 Eclipse 才能生效。
Eclipse 打開 ByteCode 插件視窗:
Window-> Show View -> Other -> Java -> Bytecode
當然,市面上還有很多其他的小工具可以檢視位元組碼,這裡就不再一一介紹了,有興趣的可以去了解下,棧長介紹的這三種方式應該夠用了吧。