public class IFTest{
public static void main(String[] args) {
int a = 1;
if (a == 1) {
a = 1314;
} else {
a = 520;
}
}
}
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
0: iconst_0
1: istore_1
2: iload_1
3: ifne 13
6: sipush 1314
9: istore_1
10: goto 17
13: sipush 520
16: istore_1
17: return
1、iconst_0指令,把0存入操作数据栈
iconst_0
2、istore_1指令,把0从操作数据栈保存到局部变量表1号槽位中
istore_1
3、iload_1指令,把局部变量表1号槽位加载到操作数据栈中
iload_1
4、ifne 13指令,判断是否不相等,不相等跳转到13行指令,相等则继续往下执行
4、sipush 1314指令,把1314压入操作数据栈
sipush 1314指令
5、istore_1指令,把栈顶1314保存到局部变量表一号槽位
image.png
7、goto 17指令,跳转到17行
8、retrun指令,方法返回
网友评论