eclipse配置javap命令教程
程序员文章站
2024-03-15 18:41:33
...
博主最近刷java题时,遇见很多匪夷所思的问题,常常被答案搞得糊里糊涂,相信很多新手也都遇到过类似的问题,比如下面这题:
int i =0;
i = i++;
System.out.print(i);
- 1
- 2
- 3
最后输出0,各家说法,千奇百怪。
这时候我们就需要一个权威的答案,最好就是从本质入手,我们看下这段代码核心的汇编命令:
0: iconst_0
1: istore_1
2: iload_1
3: iinc 1, 1
6: istore_1
10: iload_1
- 1
- 2
- 3
- 4
- 5
- 6
翻译成人话:
0:0入操作栈顶(0)
1:将操作数栈顶(0)的整型值存放到局部变量表第一个Slot中(0)
2:将局部变量表第一个Slot中的整型值(0)复制到操作数栈顶(0)
3:局部变量表第一个Slot中的整型值+1(1)
6:将操作数栈顶的整型值(0)存放到局部变量表第一个Slot中(0)
10:将局部变量表第一个Slot中的整型值(0)复制到操作数栈顶(0)
- 1
- 2
- 3
- 4
- 5
- 6
很明显,一番折腾后最后答案是0。
从上面我们可以看出javap命令可以让我们透过现象看本质,还不会用javap命令的同学继续往下看,下面讲讲Eclipse中配置javap命令的教程:
1、点击菜单栏 Run –> External tools –> External tools Configurations
在Program上New一个新配置项。
2、输入参数:
Name: javap
Locations: 选择jdk的javap.exe文件所在的位置
Working Directory: workspaceloc/workspaceloc/{project_name}
Arguments: -classpath bin -c ${java_type_name}
说明:
${workspace_loc}表示工作空间所在的路径;
${project_name}表示项目的名称;
${java_type_name}表示所选java文件的类名(全名);
3、点击Run
这时,通常会报错:
这是因为,我们没有选中任何Java文件。
下面让我们操练起来:
结果:
<终>
上一篇: Android中MVP模式讲解及实践