integer和int最本質的區別就是:integer是封裝類,int是基本資料型別(這是廢話)。
本文是希望能對integer和int的區別進行更詳細的對比說明並加以舉例
在說明integer的時候有幾個小知識點提一下:
public boolean equals(object obj)
return false;
}幾點說明
integer a = new integer(1);
int b = 1;
system.out.println(a == b);//true
兩個通過new生成的integer變數是永遠不相等的(因為new生成的是兩個新物件,記憶體位址不同)
integer a = new integer(1);
integer b = new integer(1);
system.out.println(a == b);//false
兩個通過非new產生的integer變數也是不相等的(因為非new產生的integer變數指向j**a常量池中的物件,而new產生的變數指向堆中新建物件,他倆所在的記憶體位址不同)
integer a = new integer(1);
integer b = 1;
system.out.println(a == b);//false
兩個非new產生的integer變數比較:當值在-128~127之間時,結果為true,當值在此區間外結果為false(因為integer常量池的儲存範圍是[-128,127],在此範圍內是直接儲存於常量池的,都指向同乙個位址。在此範圍外的數需要通過堆記憶體建立乙個新物件。比如integer a=1會將1寫入快取中,下次再寫integer b=1時會直接從快取中去,不用new了,所以取到的位址也是相同的)
integer a = 1;
integer b = 1;
system.out.println(a == b);//true
integer a = 129;
integer b = 129;
system.out.println(a == b);//false
Integer 和int的區別
1.int是基本的資料型別,直接存數值 2.integer是int的封裝類 integer 是物件,用乙個引用指向這個物件 integer 是乙個類,是int的擴充套件,定義了很多的轉換方法。3.int和integer都可以表示某乙個數值 4.int和integer不能夠互用,因為他們兩種不同的資料...
int和Integer的區別
今天有個學弟問了我乙個面試題 integer a 128 integer b 128 system.out.println a b 輸出什麼?為什麼?說來慚愧,我的直覺告訴我會輸出flase,但突然間還想不出來為什麼。所以寫了個例子研究了下 public static void main strin...
int 和 Integer 的區別
int 和 integer 的區別 1 integer是int的包裝類 2 integer是類,預設值是null int是基礎資料型別,預設值是0.3 integer表示的是物件,用乙個引用指向這個物件 而int是基本資料型別,直接儲存數值。integer類在 128到127的快取問題 即jvm會快...