java中int和Integer的==比較和拆箱裝箱

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, 這是 比較的就是數值


發佈了7 篇原創文章 · 獲贊 0 · 訪問量 7855
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章