前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java--自动装箱、拆箱与遍历循环

Java--自动装箱、拆箱与遍历循环

作者头像
SuperHeroes
发布2018-05-22 16:27:39
8200
发布2018-05-22 16:27:39
举报
文章被收录于专栏:云霄雨霁云霄雨霁

自动装箱、拆箱与遍历循环源代码:

代码语言:javascript
复制
public static void main(String[] args) {
    List<Integer> list = Arrays.asList(1,2,3,4);
    int sum = 0;
    for(int i:list)
        sum +=i;
    System.out.print(sum);
}

编译之后的代码:

代码语言:javascript
复制
public static void main(String[] args){
    List list = Arrays.asList(new Integer[]{    //变长参数变成了数组类型的参数
        Integer.valueOf(1);    //自动装箱、拆箱转化为对应的包装和还原方法
        Integer.valueOf(2);
        Integer.valueOf(3);
        Integer.valueOf(4);});

    int sum=0;
    //遍历数组还原成了迭代器实现,这也是为什么遍历循环要求被遍历的类实现Iterable接口的原因
    for(Integer localInteger = list.iteratoor();localInterator.hasNext();){
        int i = ((Integer) localIterator.next()).intValue();
        sum+=i;
    }
    System.out.println(sum);
}

自动装箱陷阱:

代码语言:javascript
复制
public static void main(String[] args) {
    Integer a = 1;
    Integer b = 2;
    Integer c = 3;
    Integer d = 3;
    Integer e = 321;
    Integer f = 321;
    Long g = 3L;
    System.out.println(c == d);    //true
    System.out.println(e == f);    //false
    System.out.println(c ==(a + b));    //true
    System.out.println(c.equals(a+b));    //true
    System.out.println(g == (a+b));    //true
    System.out.println(g.equals(a+b));    //false
}

详解Java自动拆箱、装箱

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档