天天看點

IDEA 如何檢視 class 檔案反編譯後的内容

有時候,我們需要檢視 IDEA 編譯後的 class 檔案是什麼樣子的,位元組碼不太能看得懂,就需要再進行反編譯。怎麼做呢?

項目的目錄下有一個 target,根據報名找到對應的 class 檔案輕按兩下打開即可。

IDEA 如何檢視 class 檔案反編譯後的内容
IDEA 預設會使用 Fernflower 對位元組碼檔案進行反編譯。反編譯後的内容如下所示。

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.cmower.java_demo.stackoverflow;
public class Cmower1 {
    public Cmower1() {
    }
    public static void main(String[] args) {
        String[] names = new String[]{"沉", "默", "王", "二"};
        String[] var2 = names;
        int var3 = names.length;
        for(int var4 = 0; var4 < var3; ++var4) {
            String name = var2[var4];
            System.out.println(name);
        }
    }
}      

源檔案長什麼樣子呢?

package com.cmower.java_demo.stackoverflow;

public class Cmower1 {

public static void main(String[] args) {

String[] names = { "沉", "默", "王", "二" };

   for (String name : names) {

       System.out.println(name);

   }

}

可以看得出,javac 會幫助我們對源檔案進行一些編譯優化。比如說:

1){}聲明的數組最終還是用的 new 關鍵字。

2)增強的 for 循環最終還是變成了普通的 for 循環語句。

最近才開始使用 IDEA,遇到不少小問題,我一一總結了一下。大佬們請略過。

繼續閱讀