3種騷操作,教你查看 Java 位元組碼!

  • 2019 年 12 月 21 日
  • 筆記

在我們工作、學習、以及研究 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

如圖所示,可以看到 String 類的的位元組碼。

推薦閱讀:

1、硬核!盡量避免 bug 手法

2、HashMap 為什麼線程不安全?

3、Spring 如何在一個事務中開啟另一個事務?

4、瘋了!同事又問我為什麼不能用 isXXX

5、歪國人整理的 2019 年 Java 開發路線圖!