javap是 Java class文件分解器,可以反编译(即对javac编译的文件进行反编译),也可以查看java编译器生成的字节码。用于分解class文件。
语法:javap [option] 文件名
常用反编译 Javap -v class文件名
例:Javap -v Test
option:-c 与 -v的区别
1、-c信息较为简单,一般来说反编译使用-c选项就已经足够了
2、-v信息较为全面,信息量比较多
反编译命令介绍:
其实,javap -c 输出内部javap -v中已经有了,我们详细介绍下javap -c命令的输出内容
0: iconst_0 前面0:表示执行的顺序,iconst_0把值 0 放入栈顶,_0中的0代表压栈的值,如:iconst_5,即把5压入栈顶
1: istore_1 将栈顶的值放入变量1 中,_1代表变量的序列,本例中为:m,如:istore_2即为变量n赋值
2: iload_3 将变量3 即 i 的的值放入栈顶,与iconst不同的是,iload操作的值是已经定义好存在的值,iconst是定义时的压栈操作
3: iinc 1, 1 将变量1 的值加1
4:iadd 栈顶值相加(自己的认为)