转载请注明原文地址: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文件的编译过程。