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


 1.現象描述

請看下面的現象:

現象1:

 現象2:

有沒有被驚到?現象1和現象2結果不一樣,現象2使用==判斷兩個Long類型的值,結果竟然是false!

2.原理說明

源碼中初始化時會執行valueOf方法,其方法如下:

 也就是說這個值在-128到127之間會使用緩存,超過就會創建一個對象,所以上述的兩個值分別創建了兩個對象,那么使用==判斷固然不同的。若沒有超過這個范圍,則使用==是可以進行判斷的。

3.解決方法

可以使用 .longValue()  或  .equals() 進行比較。推薦使用equals方法進行比較。

1)longValue

2)equals

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM