3種神操作,教你查看 Java 字節(jié)碼!
在我們工作、學(xué)習(xí)、以及研究 JVM 過(guò)程當(dāng)中,不可避免的要查看 Java 字節(jié)碼,通過(guò)查看字節(jié)碼可以了解一個(gè)類(lèi)的編譯結(jié)果,也能通過(guò)編譯器層面來(lái)分析一個(gè)類(lèi)的性能。
字節(jié)碼文件是不能直接打開(kāi)的,下面棧長(zhǎng)教大家?guī)追N簡(jiǎn)單的方法如何查看 Java 字節(jié)碼。
1、使用 javap 命令查看字節(jié)碼
命令格式如下:
- javap -c xxx.class
JDK 提供的了,不解釋?zhuān)瑏?lái),演示操作一把:
- $ 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 類(lèi)的的字節(jié)碼。
2、Intellij IDEA 中查看字節(jié)碼
Intellij IDEA 直接集成了一個(gè)工具菜單,可以直接查看字節(jié)碼,打開(kāi) ByteCode 插件窗口方法如下:
- View -> Show bytecode
如圖所示,可以看到 String 類(lèi)的的字節(jié)碼。
是不是很方便?
如果看不到這個(gè)菜單,那可能你當(dāng)前的類(lèi)沒(méi)有編譯,需要你編譯一下。
不會(huì)用 Intellij IDEA 的可以關(guān)注公眾號(hào):Java技術(shù)棧,在后臺(tái)回復(fù):IDEA,可以獲取棧長(zhǎng)整理的歷史教程,都是無(wú)廢話干貨。
想當(dāng)初從 Eclipse 轉(zhuǎn) IDEA 數(shù)次都失敗,現(xiàn)在早習(xí)慣了,說(shuō)實(shí)話寫(xiě)代碼是真智能,基友搭配,效率翻倍。
3、Eclipse 中查看字節(jié)碼
在 Eclipse 中查看字節(jié)碼稍顯麻煩,需要安裝插件,并打開(kāi)插件窗口,安裝和使用方式如下:
Name: bytecode
Location: http://andrei.gmxhome.de/eclipse
安裝完后需要重啟 Eclipse 才能生效。
Eclipse 打開(kāi) ByteCode 插件窗口:
- Window-> Show View -> Other -> Java -> Bytecode
如圖所示,可以看到 String 類(lèi)的的字節(jié)碼。
當(dāng)然,市面上還有很多其他的小工具可以查看字節(jié)碼,這里就不再一一介紹了,有興趣的可以去了解下,棧長(zhǎng)介紹的這三種方式應(yīng)該夠用了吧。
看完有沒(méi)有漲姿勢(shì)呢?