最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中2個(gè)Integer比較相同的四種方式舉例

 更新時(shí)間:2025年01月09日 10:38:35   作者:rain_is_my_name  
這篇文章主要介紹了Java中比較兩個(gè)Integer對(duì)象的四種方式,并解釋了每種方式的原理和適用范圍,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

Java中2個(gè)Integer比較相同的4種方式

概要

使用前切記Integer的范圍是 【 -128 ~ 127】
例如:Integer a = 128; Integer b = 128;

1,使用== 比較

【-128 ~ 127】區(qū)間內(nèi)返回true,否則返回false

// == 比較
 if (a == b){
     System.out.println("a,b使用==比較 返回結(jié)果:true");
 }else {
     System.out.println("a,b使用==比較 返回結(jié)果:false");
 }

返回false

2,使用equals比較

// equals比較
if (a.equals(b)){
     System.out.println("a,b使用equals比較 返回結(jié)果:true");
 }else {
     System.out.println("a,b使用equals比較 返回結(jié)果:false");
 }

返回true,因?yàn)辄c(diǎn)擊內(nèi)部equals方法發(fā)現(xiàn),核心比較的Integer的intValue()值

// 點(diǎn)擊equals時(shí)進(jìn)入該方法
public boolean equals(Object obj) {
    if (obj instanceof Integer) {
        return value == ((Integer)obj).intValue();
    }
    return false;
}

3,使用intValue比較

 if (a.intValue() == b.intValue()){
 	System.out.println("a,b使用intValue比較 返回結(jié)果:true");
 }else {
     System.out.println("a,b使用intValue比較 返回結(jié)果:false");
 }

返回true,核心比較的也是Integer的intValue()值

4,使用 compareTo比較

// compareTo比較
if (a.compareTo(b) == 0){
     System.out.println("a,b使用compareTo比較 返回結(jié)果:true");
 }else {
     System.out.println("a,b使用compareTo比較 返回結(jié)果:false");
 }

返回true,核心比較的是int值
// 點(diǎn)擊compareTo時(shí)進(jìn)入該方法

// 第一級(jí)
public int compareTo(Integer anotherInteger) {
    return compare(this.value, anotherInteger.value);
}
// 第二級(jí)
public static int compare(int x, int y) {
   return (x < y) ? -1 : ((x == y) ? 0 : 1);
}

總結(jié)

Integer大于127后不能用==比較的原因是因?yàn)镴ava的自動(dòng)裝箱機(jī)制和Integer對(duì)象的緩存機(jī)制,如果是在區(qū)間內(nèi)則從緩存中獲取返回,否則創(chuàng)建一個(gè)新的Integer對(duì)象,源碼如下:

public static Integer valueOf(int i) {
     if (i >= IntegerCache.low && i <= IntegerCache.high)
         return IntegerCache.cache[i + (-IntegerCache.low)];
     return new Integer(i);
 }

如果你要賦的值在這【-128 ~ 127】區(qū)間內(nèi),他就會(huì)把變量a,b當(dāng)做一個(gè)個(gè)變量,放到內(nèi)存中;但如果不在這個(gè)范圍內(nèi),就會(huì)去new一個(gè)Integer對(duì)象

經(jīng)過(guò)測(cè)試,

1》 Integer在【-128 ~ 127】范圍內(nèi)時(shí),4個(gè)方法返回都是true,

2》 小于-128或者大于127時(shí),==返回是false,其余3種方法返回的都是true。

到此這篇關(guān)于Java中2個(gè)Integer比較相同的四種方式的文章就介紹到這了,更多相關(guān)Java中Integer比較相同內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實(shí)現(xiàn)房屋出租系統(tǒng)詳解

    Java實(shí)現(xiàn)房屋出租系統(tǒng)詳解

    這篇文章主要介紹了實(shí)現(xiàn)Java房屋出租系統(tǒng)的實(shí)現(xiàn)過(guò)程,文章條理清晰,在實(shí)現(xiàn)過(guò)程中加深了對(duì)相關(guān)概念的理解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • RedisTemplate和Redisson的區(qū)別

    RedisTemplate和Redisson的區(qū)別

    本文主要介紹了RedisTemplate和Redisson的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-11-11
  • springboot+nacos+gateway實(shí)現(xiàn)灰度發(fā)布的實(shí)例詳解

    springboot+nacos+gateway實(shí)現(xiàn)灰度發(fā)布的實(shí)例詳解

    灰度發(fā)布是一種在軟件部署過(guò)程中用于平滑過(guò)渡的技術(shù),通過(guò)引入灰度發(fā)布SDK和配置網(wǎng)關(guān)策略實(shí)現(xiàn),本文就來(lái)介紹一下,感興趣的可以了解一下
    2022-03-03
  • Java實(shí)現(xiàn)List與數(shù)組互轉(zhuǎn)(Arrays.asList與Collectors.toList)的兩種方法

    Java實(shí)現(xiàn)List與數(shù)組互轉(zhuǎn)(Arrays.asList與Collectors.toList)的兩種方法

    在 Java 編程中,List 和數(shù)組(Array)是兩種常用的數(shù)據(jù)結(jié)構(gòu),本文將深入探討 List 與數(shù)組之間的相互轉(zhuǎn)換,重點(diǎn)介紹 Arrays.asList 和 Collectors.toList 這兩種常用且重要的方法,并分析它們的特點(diǎn)、適用場(chǎng)景及注意事項(xiàng),需要的朋友可以參考下
    2026-01-01
  • Nacos?Client的Bug解決方法記錄

    Nacos?Client的Bug解決方法記錄

    這篇文章主要為大家介紹了Nacos?Client的Bug解決方法記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • IDEA中如何使用注解Test

    IDEA中如何使用注解Test

    這篇文章主要介紹了IDEA中如何使用注解Test問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Spring中的Aware接口詳細(xì)解析

    Spring中的Aware接口詳細(xì)解析

    這篇文章主要介紹了Spring中的Aware接口詳細(xì)解析,Aware是一個(gè)具有標(biāo)識(shí)作用的超級(jí)接口,具體實(shí)現(xiàn)是有子接口去決定的,但是子接口至少要有一個(gè)帶一個(gè)參數(shù)的且返回是空的方法,需要的朋友可以參考下
    2023-12-12
  • 深入Sqlite多線程入庫(kù)的問(wèn)題

    深入Sqlite多線程入庫(kù)的問(wèn)題

    本篇文章是對(duì)Sqlite多線程入庫(kù)的問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Java深入淺出講解String類常見方法

    Java深入淺出講解String類常見方法

    在C語(yǔ)言中,如果要表示字符串而且對(duì)字符串進(jìn)行操作的話,依靠的是數(shù)組和指針,而Java中提供了String類用來(lái)專門表示字符串,String類中常見的方法,以及一些細(xì)節(jié)是本篇重點(diǎn)
    2022-04-04
  • 基于 SASL/SCRAM 讓 Kafka 實(shí)現(xiàn)動(dòng)態(tài)授權(quán)認(rèn)證的方法

    基于 SASL/SCRAM 讓 Kafka 實(shí)現(xiàn)動(dòng)態(tài)授權(quán)認(rèn)證的方法

    在大數(shù)據(jù)處理和分析中?Apache Kafka?已經(jīng)成為了一個(gè)核心組件,本文將從零開始部署?ZooKeeper?和?Kafka?并通過(guò)配置?SASL/SCRAM?和?ACL(訪問(wèn)控制列表)來(lái)增強(qiáng)?Kafka?的安全性,需要的朋友可以參考下
    2024-07-07

最新評(píng)論

西藏| 长乐市| 军事| 卓尼县| 梅河口市| 松江区| 北川| 大安市| 西林县| 临澧县| 五河县| 漳平市| 关岭| 鹤岗市| 铁岭县| 康马县| 成安县| 阿勒泰市| 广州市| 耿马| 阿拉善右旗| 广宁县| 沁源县| 广灵县| 屏东市| 东城区| 文水县| 城市| 中山市| 丘北县| 襄樊市| 衡东县| 丰原市| 临沧市| 澄迈县| 永胜县| 屏南县| 西丰县| 永善县| 冕宁县| 衡东县|