自动装箱与自动拆箱(Autoboxing and unboxing)

自动装箱:

例如:Integer i = 10;  相当于Integer i = Integer.valueOf(10);

自动拆箱:

例如:Integer i = 10;

          int t = i;   相当于int t = i.intValue();


引起的陷阱:

                Integer a1 = 100;
Integer b1 = 100;
System.out.println(a1 == b1);
Integer a2 = 128;
Integer b2 = 128;

System.out.println(a2 == b2);

第一个输出是 true  第二个是false。

先看看Integer.java的源码:

public  static  Integer valueOf( int  i) {
     if (i >= - 128  && i <= IntegerCache.high)   // 没有设置的话,IngegerCache.high 默认是127
         return  IntegerCache.cache[i +  128 ];
     else
         return  new  Integer(i);
}
对于–128到127(默认是127)之间的值,Integer.valueOf(int i) 返回的是缓存的Integer对象(并不是新建对象)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值