有時候,我們需要檢視 IDEA 編譯後的 class 檔案是什麼樣子的,位元組碼不太能看得懂,就需要再進行反編譯。怎麼做呢?
項目的目錄下有一個 target,根據報名找到對應的 class 檔案輕按兩下打開即可。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SM3QjZ1QDN0IzYjJmZkdTYyEmY0gjYhRmM4E2N1ETZh9CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
//
// 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,遇到不少小問題,我一一總結了一下。大佬們請略過。