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

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

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);
}

编译之后的代码:

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);
}

自动装箱陷阱:

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自动拆箱、装箱

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值