Java判斷兩個Integer類型的值是否相等


當數值范圍是[-128,127],比如a=12,b=12,用==去比較得出的是true

當數值范圍超出[-128,127],比如a=12345,b=12345,用==得出的結果是false。

因為超出范圍時,Integer會去new一個對象,比較的是兩個對象的地址。

當用“==”進行比較時,jvm默認是比較數據在java堆的地址。int是一種基本數據類型,jvm會自動將Integer轉成int數值進行比較。

在Integer類中,有一個內部靜態類IntegerCache ,用來支持自動拆箱和裝箱。

比較兩個Integer的值是否相同,方法比較多,推薦用Objects.equals(a, b),這個還可以避免一些空指針問題的出現。


免責聲明!

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



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