Integer和Int類型的比較

Integer和Int類型的比較

Integer 類型是一個對象類,它是將一個int的基本類型進行裝箱包裝,當我們調用integer的對象的時候,Integer會指向它所包裝的int基本類型的地址.

如果將Integer和int類型進行比較時,系統會將Integer自動轉換成int類型,這時候我們在比較int類型的時候會自動的對這塊地址的值進行比較而非對內存比較.觀察下面的例子:

public static Integer getIntegerExample1 = 128 ;
public static int getIntExample1 = 128 ;
System.out.print("結果: ");
System.out.println(getIntegerExample1 == getIntExample1);
結果: true

當我們對兩個Integer類型進行比較時,那麼系統會對它的內存地址進行比較.因爲內存分配的地址不同,所以結果是不同.觀察下面的例子:

public static Integer getIntegerExample3 = 128 ;
public static Integer getIntegerExample_3 = 128 ;
System.out.print("結果: ");
System.out.println(getIntegerExample3 == getIntegerExample_3);
結果: false

然而我們還有一種情況,就是當Integer值的大小在-127-127之間的時候,Integer會直接去常量池中選擇,那麼當你對2個在常亮池中的Integer的值進行比較時候,它會表示這兩個Integer是指向同一個內存地址.

public  static Integer getIntegerExample2 = 127 ;
public static Integer getIntegerExample_2 = 127;
System.out.print("結果: ");
System.out.println(getIntegerExample2 == getIntegerExample_2);

結果: true
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章