1. 程式人生 > >int 和 Integer 有什麼區別.

int 和 Integer 有什麼區別.

1,無論如何,Integer與new Integer不會相等。不會經歷拆箱過程,new出來的物件存放在堆,而非new的Integer常量則在常量池(在方法區),他們的記憶體地址不一樣,所以為false。

2,兩個都是非new出來的Integer,如果數在-128到127之間,則是true,否則為false。因為java在編譯Integer i2 = 128的時候,被翻譯成:Integer i2 = Integer.valueOf(128);而valueOf()函式會對-128到127之間的數進行快取。

3,兩個都是new出來的,都為false。還是記憶體地址不一樣。

4,int和Integer(無論new否)比,都為true,因為會把Integer自動拆箱為int再去比。