欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java Long類型對比分析

 更新時(shí)間:2021年07月09日 10:41:54   作者:zx_huang  
這篇文章主要介紹了Java Long類型對比分析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java Long類型對比

在開發(fā)的到一個(gè)很基礎(chǔ)的問題

在代碼中,兩個(gè)Long類型數(shù)據(jù)比較用“==”,結(jié)果有時(shí)候true有時(shí)候false,原本以為Long會(huì)自動(dòng)轉(zhuǎn)long然后再比較,不會(huì)是這里的錯(cuò),找來找去實(shí)在找不到其他原因了,我就打印這兩個(gè)Long類型出來看,果然是不相等,于是臉黑了一陣......

去查了一下資料,原來是這樣:

Java 基本類型的包裝類的大部分都實(shí)現(xiàn)了常量池技術(shù),即Byte,Short,Integer,Long,Character;

這5種包裝類默認(rèn)創(chuàng)建了數(shù)值[-128,127]的相應(yīng)類型的緩存數(shù)據(jù),但是超出此范圍仍然會(huì)去創(chuàng)建新的對象。

所以

當(dāng)Long型的值超過了【-128,127】的時(shí)候,他會(huì)new一個(gè)新的對象,如果沒有超過就會(huì)放到緩存中。

所以當(dāng)Long型的值超過了【-128,127】的時(shí)候,“==”判斷就不會(huì)相等了,可以理解為此時(shí)“==”比較的是兩個(gè)對象的地址而不是值。

Long class源碼:

public static Long valueOf(long l) {
    final int offset = 128;
    if (l >= -128 && l <= 127) { // will cache
        return LongCache.cache[(int)l + offset];
    }
    return new Long(l);
}

正確的Long類型比較姿勢:

1.使用Long的longValue()方法,轉(zhuǎn)換成long值進(jìn)行比較

Long a = 128l;
Long b = 128l;
a.longValue() == b.longValue(); //true

2.使用Long的equals()方法

Long a = 128l;
Long b = 128l;
a.equals(b); //true

Long class 源碼:

public boolean equals(Object obj) {
    if (obj instanceof Long) {
        return value == ((Long)obj).longValue();
    }
    return false;
}

java Long型和long型的比較大小

一、Long數(shù)據(jù)的大小的比較

對于Long類型的數(shù)據(jù),這個(gè)數(shù)據(jù)是一個(gè)對象,所以對象不可以直接通過“>”,“==”,“<”的比較,如果要比較兩個(gè)對象的是否相等的話,我們可以用Long對象的.equals()方法:

二、long數(shù)據(jù)的大小的比較

對于long類型的數(shù)據(jù),這個(gè)數(shù)據(jù)是一個(gè)基本數(shù)據(jù)類型,不屬于對象,所以可以直接通過“>”,“==”,“<”作比較

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用html css javascript打造自己的RIA圖文教程

    用html css javascript打造自己的RIA圖文教程

    用html&css&javascript打造自己的RIA之一,包括了配置等
    2009-07-07
  • java刪除數(shù)組中的某一個(gè)元素的方法

    java刪除數(shù)組中的某一個(gè)元素的方法

    下面小編就為大家?guī)硪黄猨ava刪除數(shù)組中的某一個(gè)元素的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • SpringBoot攔截器使用精講

    SpringBoot攔截器使用精講

    攔截器可以根據(jù) URL 對請求進(jìn)行攔截,主要應(yīng)用于登陸校驗(yàn)、權(quán)限驗(yàn)證、亂碼解決、性能監(jiān)控和異常處理等功能上。SpringBoot同樣提供了攔截器功能。 本文將為大家詳細(xì)介紹一下
    2021-12-12
  • Java開發(fā)Oracle數(shù)據(jù)庫連接JDBC Thin Driver 的三種方法

    Java開發(fā)Oracle數(shù)據(jù)庫連接JDBC Thin Driver 的三種方法

    這篇文章主要介紹了Java開發(fā)Oracle數(shù)據(jù)庫連接JDBC Thin Driver 的三種方法,需要的朋友可以參考下
    2015-12-12
  • spring data 連接mongodb的兩種方式

    spring data 連接mongodb的兩種方式

    這篇文章主要介紹了spring data mongodb連接方式詳解,本文給大家分享兩種連接方式,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • Java如何防止JS腳本注入代碼實(shí)例

    Java如何防止JS腳本注入代碼實(shí)例

    這篇文章主要介紹了Java如何防止JS腳本注入代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java中MyBatis Plus知識(shí)點(diǎn)總結(jié)

    Java中MyBatis Plus知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理一篇關(guān)于Java中MyBatis Plus知識(shí)點(diǎn)總結(jié),需要的朋友們參考下。
    2019-10-10
  • 十種JAVA排序算法實(shí)例

    十種JAVA排序算法實(shí)例

    本文件講了十種JAVA排序方法(冒泡(Bubble)排序——相鄰交換 、選擇排序——每次最小/大排在相應(yīng)的位置 、插入排序——將下一個(gè)插入已排好的序列中 、殼(Shell)排序——縮小增量 、歸并排序 、快速排序 、堆排序 、拓?fù)渑判?、錦標(biāo)賽排序 、基數(shù)排序)的使用,并提供了實(shí)例代碼可參考
    2013-11-11
  • 如何在spring boot中進(jìn)行參數(shù)校驗(yàn)示例詳解

    如何在spring boot中進(jìn)行參數(shù)校驗(yàn)示例詳解

    這篇文章主要介紹了如何在spring-boot中進(jìn)行參數(shù)校驗(yàn)及l(fā)ombok的使用詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 淺談BeanPostProcessor加載次序及其對Bean造成的影響分析

    淺談BeanPostProcessor加載次序及其對Bean造成的影響分析

    這篇文章主要介紹了淺談BeanPostProcessor加載次序及其對Bean造成的影響分析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論