如何在Java中判斷兩個(gè)Long類型是否相等
一、為什么同樣的類型,同樣的值,卻不相等呢?
1、探索一下源碼
源碼中顯示,Long中有一個(gè)靜態(tài)的內(nèi)部類LongCache,專門用于緩存-128至127之間的值,一共256個(gè)元素。
如果值在[-128, 127]之間,會(huì)放在緩存里面,而超過這個(gè)范圍就要new一個(gè)新的對象,也就是說==不能判斷對象是否相等。當(dāng)然,如果值是在[-128, 127]之間的話是測不出來什么問題的。
二、解決方案
1、可以使用.longValue()
2、equals()進(jìn)行比較
最佳解決方案為 .eques() 我們可以先看.eques()的源碼。
它是先通過.longValue()方法獲取Long對象的基本類型long的值之后再做比較的。我們用longValue會(huì)比較容易忘記后面一個(gè)包裝類調(diào)longValue方法。
所以所我們最好用.eques()方法,當(dāng)然也可以用.longValue()的
三、例子
到此這篇關(guān)于如何在Java中判斷兩個(gè)Long類型是否相等的文章就介紹到這了,更多相關(guān)Java判斷Long類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
zookeeper實(shí)戰(zhàn)之實(shí)現(xiàn)分布式鎖的方法
Zookeeper實(shí)現(xiàn)分布式鎖比Redis簡單,Zookeeper有一個(gè)特性,多個(gè)線程在Zookeeper里創(chuàng)建同一個(gè)節(jié)點(diǎn)時(shí),只有一個(gè)線程執(zhí)行成功,Zookeeper主要是利用臨時(shí)有序節(jié)點(diǎn)這一特性實(shí)現(xiàn)分布式鎖,感興趣的朋友跟隨小編一起學(xué)習(xí)吧2022-11-11SpringBoot實(shí)現(xiàn)的Mongodb管理工具使用解析
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)的Mongodb管理工具使用解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09springboot內(nèi)置tomcat調(diào)優(yōu)并發(fā)線程數(shù)解析
這篇文章主要介紹了springboot內(nèi)置tomcat調(diào)優(yōu)并發(fā)線程數(shù)解析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12gateway網(wǎng)關(guān)接口請求的校驗(yàn)方式
這篇文章主要介紹了gateway網(wǎng)關(guān)接口請求的校驗(yàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Java用數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列的示例
下面小編就為大家?guī)硪黄狫ava用數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列的示例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09