栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java - foreach 语法糖

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 
20 iload 4
22 invokevirtual #6 
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 的语法糖。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/309585.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号