Java - foreach 语法糖


前言

探究 foreach 循环语法糖。

代码

首先,当然是先看下代码:

public static void foreach(int[] arr) {
    for (int i : arr) {
        System.out.println(i);
    }
}

执行后生成的相关字节码为:

 0 aload_0
 1 astore_1
 2 aload_1
 3 arraylength
 4 istore_2
 5 iconst_0
 6 istore_3
 7 iload_3
 8 iload_2
 9 if_icmpge 31 (+22)
12 aload_1
13 iload_3
14 iaload
15 istore 4
17 getstatic #5 <java/lang/System.out : Ljava/io/PrintStream;>
20 iload 4
22 invokevirtual #6 <java/io/PrintStream.println : (I)V>
25 iinc 3 by 1
28 goto 7 (-21)
31 return

.class 文件进行反编译。

反编译

此处我使用的是 IDEA 自带的反编译插件,得到的代码是:

public static void foreach(int[] arr) {
    int[] var1 = arr;
    int var2 = arr.length;

    for(int var3 = 0; var3 < var2; ++var3) {
        int i = var1[var3];
        System.out.println(i);
    }
}

结论

foreach 循环就是 for loop 的语法糖。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值