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