美文网首页
if底层指令图解分析

if底层指令图解分析

作者: zzz_0427 | 来源:发表于2024-06-16 10:43 被阅读0次
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指令,方法返回

相关文章

网友评论

      本文标题:if底层指令图解分析

      本文链接:https://www.haomeiwen.com/subject/bohoqjtx.html