java在5.0开始,基本类型和封装类型之间有了自动的转换。
- Integer i1=1;//1转变为new Integer(1),叫自动装箱
- Integer i2=1;
- int i3=i1+i2;//i1 i2自动转化为int类型,叫自动解箱
- System.out.println(i1==i2);//true
这里我们可以看到,Integer的构造方法可以不用了。
自动装箱时,-128--127有缓冲池,是同一个对象,如果不在这个范围内,将会新建对象,所以对象会不同。
- Integer i4=128;
- Integer i5=128;
- System.out.println(i4==i5);//false
用==比较时,如果两边一个int一个Integer,自动解箱后再比较。
- int i6=128;
- System.out.println(i4==i6);//true
转载于:https://blog.51cto.com/632977922/1066675