如何在Java中判斷兩個Long類型是否相等
一、為什么同樣的類型,同樣的值,卻不相等呢?

1、探索一下源碼
源碼中顯示,Long中有一個靜態(tài)的內(nèi)部類LongCache,專門用于緩存-128至127之間的值,一共256個元素。
如果值在[-128, 127]之間,會放在緩存里面,而超過這個范圍就要new一個新的對象,也就是說==不能判斷對象是否相等。當(dāng)然,如果值是在[-128, 127]之間的話是測不出來什么問題的。

二、解決方案
1、可以使用.longValue()

2、equals()進(jìn)行比較
最佳解決方案為 .eques() 我們可以先看.eques()的源碼。

它是先通過.longValue()方法獲取Long對象的基本類型long的值之后再做比較的。我們用longValue會比較容易忘記后面一個包裝類調(diào)longValue方法。
所以所我們最好用.eques()方法,當(dāng)然也可以用.longValue()的
三、例子


到此這篇關(guān)于如何在Java中判斷兩個Long類型是否相等的文章就介紹到這了,更多相關(guān)Java判斷Long類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot和Springfox(Swagger)版本不兼容的解決方案
documentationPluginsBootstrapper這個 bean 無法正常啟動,原因是遇到了空指針異常(NullPointerException),這通常是由于 Spring Boot 和 Springfox 的版本不兼容導(dǎo)致的路徑匹配策略沖突,本文給大家介紹了SpringBoot和Springfox(Swagger)版本不兼容的解決方案2024-12-12
Java基于ReadWriteLock實現(xiàn)鎖的應(yīng)用
這篇文章主要介紹了Java基于ReadWriteLock實現(xiàn)鎖的應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
關(guān)于SpringSecurity?Context?中獲取和更改當(dāng)前用戶信息的問題
SpringSecurityContext在異步線程中無法獲取用戶信息,因其與請求線程綁定;此外,用戶信息更新后跳轉(zhuǎn)頁面時,身份會被降級為匿名,導(dǎo)致信息無法及時同步,本文給大家介紹SpringSecurity?Context?中獲取和更改當(dāng)前用戶信息的問題,感興趣的朋友一起看看吧2024-09-09
劍指Offer之Java算法習(xí)題精講數(shù)組與字符和等差數(shù)列
跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化2022-03-03
Java使用Spring發(fā)送郵件的實現(xiàn)代碼
本篇文章主要介紹了使用Spring發(fā)送郵件的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
JavaWeb開發(fā)入門第二篇Tomcat服務(wù)器配置講解
JavaWeb開發(fā)入門第二篇主要介紹了Tomcat服務(wù)器配置的方法教大家如何使用Tomcat服務(wù)器,感興趣的小伙伴們可以參考一下2016-04-04

