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