什么是反编译
java程序需要经过编译为二进制字节码,然后通过类加载器加载到内存中,再运行。
二进制字节码我们看不懂,但是可以进行反编译,查看代码的整个运行过程。
有两种比较好的方法进行反编译: IDEA直接设置进行反编译;IDEA内的Terminal中使用命令行进行反编译;
IDEA直接设置进行反编译
先暂停一下,说明一些问题:
- name就是自己明明的什么外部工具,这里命名为javap即可;
- Program:jdk的javap工具在系统的绝对位置,这里应该使用了通配符;
- Parameters:其实就是通用的反编译的命令,-v 是一个参数,表示输出一些附加信息,然后跟一个.class文件,这里应该使用了通配符;
- Workingdirectory:就是要反编译的类所在的项目在系统的绝对位置,这里应该使用了通配符;
看看我们电脑里的javap工具在系统的绝对位置,一般是再jdk的bin的文件夹里:
要反编译的类所在的项目在系统的绝对位置,一般是在IDEA项目里的out文件夹里:
反编译的命令的一些参数 ,格式是,javap +参数 +要反编译的.class文件:
然后继续设置:
最后就设置完成了。
IDEA反编译的使用
在IDEA内的Terminal中使用命令行进行反编译
Terminal处其实就类似与cmd命令行工具
关于反编译后结果的分析,就不多加叙述了,总之对代码性能的分析是少不了反编译的。