題目來自牛客網
public
class main
}
執行結果
truei01 == i02為truetrue
false
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不能夠互用,因為他們兩種不同的資料...