Integer與Integer間的比較,從jdk1.5開始,有“自動裝箱”機制 比較地址
自動拆箱 :對象包裝類和基本數據類型比較 對象包裝類拆箱成基本數據類型,比較的是裏面的值,不是地址
,在byte-128到127之間,已創建的值,在創建相同值的時候就不會重新創建,而是引用原來那個。
1.Integer和Integer比較
Integer i=128;
Integer i2=128;
System.out.println(i==i2);//false自動裝箱過程,超過byte範圍則創建新對像 不超過範圍 是true
Integer i=new Integer(5);
Integer i2=new Integer(5);
System.out.println(i==i2);//false兩個new 兩個不同對象 比較地址
Integer i=new Integer (128);
Integer i2=128;
System.out.println(i==i2);//false 不經歷拆裝箱過程 i的引用指向堆(堆中存放對象)i2指向常量池
2. Integer和int比較
Integer i=new Integer(5);
int i2=5;
System.out.println(i==i2);//true i自動拆箱爲i=5, 這是 比較的就是數值