原文:兩個 Long 類型為什么不能直接用==比較

這要說到 和 equals 的區別了。 . 比較的是兩個對象在內存中的地址值 棧中的內容 。 .equals 是 java.lang.Object 類的一個方法。equals 比較的是兩個對象的內容 堆中的內容 。java 中所有的類都默認繼承於 Object,所以所有的類都有這個方法。 但是 Long 是一個對象,是對 long 的封裝。我們看一下 Long 對象的源碼,里面的 equals 方 ...

2016-04-01 20:39 0 5793 推薦指數:

查看詳情

Long類型比較不能直接用等於

在判斷兩個Long型數據是否相等的時候遇到了一個問題。 使用“==”的疑問 if (user.getId() == admin.getId()) { return true; } else { return false; } 兩個Long型的ID之間的比較,結果卻是false。再看 ...

Wed Nov 08 23:45:00 CST 2017 0 8544
比較兩個日期(SYSTEMTIME類型)的大小

這種方法有時候會出錯,雖然兩個都是無符號的時間,但是SYSTEMTIME其中有個wDayOfWeek會影響內存比較。正確的做法是,將wDayOfWeek這個值都置為0,改變這個值不影響比較。 ...

Tue Mar 24 00:30:00 CST 2020 0 1018
Java中判斷兩個Long類型是否相等

在項目中將兩個long類型的值比較是否相等,結果卻遇到了疑問? 下面就陪大家看看一個神奇的現象! 1.1問題?為什么同樣的類型,同樣的值,卻不相等呢? 1.2那么我們就需要探索一下源碼了 源碼中顯示,Long中有一個靜態的內部類LongCache,專門用於緩存-128至127之間 ...

Thu Apr 04 19:59:00 CST 2019 0 16533
Java中判斷兩個Long類型是否相等

1.現象描述 請看下面的現象: 現象1: 現象2: 有沒有被驚到?現象1和現象2結果不一樣,現象2使用==判斷兩個Long類型的值,結果竟然是false! 2.原理說明 源碼中初始化時會執行valueOf方法,其方法如下: 也就是說這個值在-128到127之間會使 ...

Sat Oct 30 22:08:00 CST 2021 0 1548
Java中判斷兩個Long類型是否相等

在項目中將兩個long類型的值比較是否相等,結果卻遇到了疑問? 下面就陪大家看看一個神奇的現象! 1.1問題?為什么同樣的類型,同樣的值,卻不相等呢? 1.2那么我們就需要探索一下源碼了 源碼中顯示,Long中有一個靜態的內部類LongCache,專門用於緩存-128至127之間 ...

Thu Jun 18 21:52:00 CST 2020 0 708
關於Java Integer和Long直接比較

Integer和Long不能直接equals比較會返回False Long.class源碼 ` ` Integer.class源碼 ` ` 解決方法 Long變量.equals(Integer變量.longValue()) 返回True ...

Fri Nov 27 17:34:00 CST 2020 0 1299
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM