轉載請注明原文地址:https://www.cnblogs.com/ygj0930/p/10840818.html
一:反編譯
通常用於第三方JAR包的逆向工程。
一般我們拿到的jar包都是經過編譯后的 .class文件,但是我們在開發過程中對jar包的調用有疑問,或者像深入探索原理時,根本無法查看源碼,這對我們來說就比較沮喪了。
這個時候,我們可以通過一些反編譯工具,將 .class 文件逆向成 java源代碼,這樣就可以看到它的真面目啦~
java反編譯我們一般使用jad工具,或者網上提供的一些可用的第三方工具,很多的,找找就有了。
二:反匯編
反匯編與反編譯是兩碼事,雖然原材料都是 .class文件。
上面提到的反編譯是向上的,即根據編譯后的結果,反向得到編譯前的源碼。
而反匯編則是根據編譯后的結果,倒推源碼編譯的過程,這里就可以看出代碼邏輯真實編譯、執行過程的每一步,對於性能優化、問題追溯等具有十分強大的幫助。
Java反匯編使用jdk自帶的工具——javap。
安裝了Java開發環境的電腦上,可以通過命令行 輸入 :javap -c XXX.class 文件來查看該class文件的編譯過程。