JDK1.5版本后基本数据包装类的新特性


1,自动装箱与自动拆箱

Integer x = new Integer(4);

Integer x = 4;   //自动装箱   跟上一行代码实际效果一样.而在1.5之前编译时无法通过的.

x = x+ 2;  //先对x 进行自动拆箱。变成int类型。和2进行加法运算。再将和进行装箱赋给x。

2,基本数据类型的对象缓存

Integer a = 127;
Integer b = 127;
System.out.println("a==b:"+(a==b));

结果为true,为什么呢?因为对于1.5的新特性,当数值在byte范围内,如果该数值已经存在,则不会在开辟新的空间。

所以a和b指向了同一个对象.

如果写成

Integer a =new Integer( 127);
Integer b = new Integer(127);
System.out.println("a==b:"+(a==b));

则输出结果为false.

同样的,当数值超过byte范围时,例如:

Integer a = 128;
Integer b = 128;
System.out.println("a==b:"+(a==b));

输出结果为false;

如果是System.out.println(a.equals(b));则输出结果为true,因为Integer的equals方法比较的是int的值,而不是对象.

所以

Integer a =new Integer( "127");
Integer b = new Integer(127);
System.out.println("a==b:"+a.equals(b));  结果为true.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值