Integer和Int類型的比較
Integer 類型是一個對象類,它是將一個int的基本類型進行裝箱包裝,當我們調(diào)用integer的對象的時候,Integer會指向它所包裝的int基本類型的地址。
如果將Integer和int類型進行比較時,系統(tǒng)會將Integer自動轉換成int類型,這時候我們在比較int類型的時候會自動的對這塊地址的值進行比較而非對內(nèi)存比較.觀察下面的例子:
(推薦教程:java快速入門)
public static Integer getIntegerExample1 = 128 ; public static int getIntExample1 = 128 ; System.out.print("結果: "); System.out.println(getIntegerExample1 == getIntExample1);
結果: true
當我們對兩個Integer類型進行比較時,那么系統(tǒng)會對它的內(nèi)存地址進行比較.因為內(nèi)存分配的地址不同,所以結果是不同.觀察下面的例子:
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是指向同一個內(nèi)存地址.
public static Integer getIntegerExample2 = 127 ; public static Integer getIntegerExample_2 = 127; System.out.print("結果: "); System.out.println(getIntegerExample2 == getIntegerExample_2);
結果: true
相關視頻教程推薦:java視頻教程