Java包裝類與基本型別進行比較的坑

2021-08-05 20:32:17 字數 1691 閱讀 8360

short packshort=1;

short baseshort=1;

integer packint=1;

int baseint=1;

//用short的equals()方法與short進行比較

system.out.println(packshort.equals(baseshort));

//用==比較short和short

system.out.println(packshort==baseshort);

//用short的equals()方法與int進行比較

system.out.println(packshort.equals(baseint));

//用short的equals()方法與integer進行比較

system.out.println(packshort.equals(packint));

//用==比較short和int

system.out.println(packshort==baseint);

//用==比較short和integer,不能進行比較,型別不同

**的執行結果如下:

true

true

false

false

true

public boolean equals(object obj) 

return false;

}

integerequals()**類似,有興趣可以自行去看一下,這裡就不重複了。以下是結果分析:

shortequals()方法與short進行比較的時候,short型別會被判斷為是short型別的例項,然後兩個物件都會被轉化為基本型別用==進行比較,所以結果為true

==比較shortshort的時候,short型別物件被拆箱**為short基本型別),所以結果為true

shortequals()方法與int進行比較的時候,由於型別判斷那裡就已經為false了,直接返回false

shortequals()方法與integer進行比較的時候,與用shortequals()方法與int進行比較的時候同樣的原因,返回結果為false

==比較shortint的時候,short首先是進行了拆箱**為short基本型別),然後是自動提高型別**為int),之後才進行比較,所以結果為true

JAVA基本型別與包裝類

1.宣告方式不同,基本型別不適用new關鍵字,而包裝型別需要使用new關鍵字來在堆中分配儲存空間 2.儲存方式及位置不同,基本型別 區域性變數在棧中,成員變數實在堆中,靜態變數在data區中 是直接將變數值儲存在棧中,而包裝型別是將物件放在堆中,然後通過引用來使用 3.初始值不同,基本型別的初始值如...

基本型別包裝類

一 概述 1 將基本資料型別封裝成物件的好處在於可以在物件中定義更多的功能方法操作該資料。2 常用的操作之一 用於基本資料型別與字串之間的轉換。3 基本型別和包裝類的對應 byte,short,integer,long,float,double character,boolean 二 integer...

基本型別包裝類

基本資料型別的包裝類可以使用基本型別對應的類的相關成員變數和成員方法,相比於基本資料型別,包裝類更易於使用。八大基本資料型別 byte short int long float double char boolean 對應的包裝類 byte short integer long float doub...