Java中判斷兩個Long型別是否相等

2021-08-18 02:02:21 字數 356 閱讀 9601

開發中有遇到long型別比較是否相等,比如long a和long b判斷是否相等,當時習慣性的直接a==b;

執行時a等於b,但一直判斷不相等。

換成了a.equals(b)或a.longvalue()==b.longvalue()都是正確的;

改完bug,覺得需要看看是為什麼,通過看long.class,可以看出

如果值在[-128,127]之間,會放在快取裡面,而超過這個範圍就要new乙個新的物件,也就是說==不能判斷物件是否相等。a或者b值設定的都比較小時可能沒問題,資料較大時就gg了。

Java中判斷兩個float型別資料是否相等

相減,然後判斷這個差是否小於某個值,這個值是你自己定義的,比如0.000001什麼的,如果小於就相等,否則不等。從網上看到的例子 public class comparefloat public static void isequaloffloat float a,float b 執行結果 floa...

兩個Long型別比較存在的坑

一般來說,兩個基本資料型別比較用 就可以了,平時很少用long型別比較。但是最近寫專案時遇到了兩個long型別比較,當時也是直接用的雙等於,然而當debug時卻發現 執行到這兩個long型別比較判斷時並沒有進入這個判斷體內,然後上網搜尋相關的問題,其實很簡單,但是不知道的話就很很容易入坑。解決方法具...

Java判斷long型別字元是否相等

使用equals long重寫了equals方法,如下 public boolean equals object obj return false 它是先通過.longvalue 方法獲取long物件的基本型別long的值之後再做比較的。但是我們用longvalue比較時容易忘記後面乙個包裝類調lo...