基本型別的包裝類數值比較之坑

2021-08-20 20:17:12 字數 412 閱讀 4878

最近在做專案的時候,比較兩個包裝類的(integer、short、long)的大小,用的是==,突然發現兩個相等的值居然返回是false。

public short i=-123;

public short m=-123;

public short n=-200;

public short k=-200;

public short j=-200;

public  void test()

不知道各位覺得上面這段**會返回什麼樣的結果?不多說,直接報結果:true、true 、false。為什麼最後j==n是false呢?原來是因為包裝類的資料儲存問題,在包裝類中-128——127之間的資料是可以直接用==的,超過這個範圍的資料則必須是用equals比較,感興趣的同學可以去研究這些資料具體在記憶體的儲存格式。

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

short packshort 1 short baseshort 1 integer packint 1 int baseint 1 用short的equals 方法與short進行比較 system.out.println packshort.equals baseshort 用 比較short...

基本型別包裝類

一 概述 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...