與Integer和int有關的乙個題目分析

2021-08-17 01:13:47 字數 795 閱讀 6892

題目來自牛客網

public

class main

}

執行結果

true

true

false

true

i01 == i02為true

當int和integer進行比較時,integer會自動拆箱為int,比較他們的值是否相等

i01 == i03為true

因為當integer的值在-128 到 127這個範圍的時候,寫integer = x, 會直接從常量池中獲得,不會建立新的物件。而integer.valueof(x);也與之相同,所以i01和i03都是直接從常量池獲得,因此他們相等。

i03 == i04為false

不管x的範圍是多少,當new integer(x)的時候都會建立新的物件,所以他們不想等

i02 == i04為true

同理,integer進行拆箱,變成int進行比較

實現integer常量池的為integercache靜態類。

byte,short,integer,long,character,boolean都實現了常量池技術

integer的裝箱採用valueof() 拆箱用的 intvalue();

int 和 Integer 的區別與作用

char character byte byte short short int integer long long float float double double 引用型別和原始型別的行為完全不同,並且它們具有不同的語義。引用型別和原始型別具有不同的特徵和用法,它們包括 大小和速度問題,這種型...

int與integer的區別

1.所佔記憶體不同 integer物件會占用更多的記憶體。integer是乙個物件,需要儲存物件的元資料。但是int是乙個原始型別的資料,所以占用的空間更少。2.型別及初始值 int 是基本型別,直接存數值,在類進行初始化時int類的變數初始為0 而integer是物件 integer是int的封裝...

Integer 和int的區別

1.int是基本的資料型別,直接存數值 2.integer是int的封裝類 integer 是物件,用乙個引用指向這個物件 integer 是乙個類,是int的擴充套件,定義了很多的轉換方法。3.int和integer都可以表示某乙個數值 4.int和integer不能夠互用,因為他們兩種不同的資料...