Int和Integer的「 」問題

2021-10-10 16:04:30 字數 891 閱讀 8783

分情況討論:

1.都為integer 的比較

new:一旦new,就是開闢一塊新記憶體,結果肯定是false

不new:需看範圍, integer做了快取,當你取值在-128至127範圍時,會採用快取的物件,所以會相等;當不在這個範圍,內部建立新的物件,此時不相等

2.integer 和int 的比較

比較的是數值,integer會做拆箱的動作,來跟基本資料型別做比較

integer i1 =

newinteger(12

);integer i2 =

newinteger(12

);system.out.

println

(i1 == i2)

;// false

integer i3 =

126;

integer i4 =

126;

system.out.

println

(i3 == i4)

;// true 當在-128—127範圍時,用快取

int i5 =

126;

system.out.

println

(i3 == i5)

;// true 自動拆箱

integer i6 =

128;

integer i7 =

128;

system.out.

println

(i6 == i7)

;// false

int i8 =

128;

system.out.

println

(i6 == i8)

;// true

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...

Integer和int的比較

package com.mawei.www public class integertest 和 equals的差異 private static void mytest01 確認有效範圍 private static void mytest02 混合比較 private static void m...