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

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 文件上傳到讀取文件內(nèi)容的實(shí)例

    java 文件上傳到讀取文件內(nèi)容的實(shí)例

    今天小編就為大家分享一篇java 文件上傳到讀取文件內(nèi)容的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 在SpringBoot3中spring.factories配置不起作用的原因和解決方法

    在SpringBoot3中spring.factories配置不起作用的原因和解決方法

    本文給大家介紹了在SpringBoot3中spring.factories配置的自動(dòng)裝配不生效的原因和解決方法,文中通過(guò)代碼和圖文給出了詳細(xì)的解決方法,具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-02-02
  • Java獲取七牛云存儲(chǔ)空間中圖片外鏈

    Java獲取七牛云存儲(chǔ)空間中圖片外鏈

    本文主要介紹了Java獲取七牛云存儲(chǔ)空間中圖片外鏈,需要獲取在七牛云中存儲(chǔ)的所有圖片,并返回外鏈地址,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • Android Home鍵監(jiān)聽(tīng)的實(shí)現(xiàn)代碼

    Android Home鍵監(jiān)聽(tīng)的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Android Home 鍵監(jiān)聽(tīng)的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Java中的OneToMany的使用方法

    Java中的OneToMany的使用方法

    這篇文章主要介紹了Java中的OneToMany的使用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • SpringCache緩存抽象之CacheManager與自定義鍵生成方式

    SpringCache緩存抽象之CacheManager與自定義鍵生成方式

    本文將深入探討Spring Cache的核心組件CacheManager及自定義鍵生成策略,幫助開(kāi)發(fā)者掌握緩存配置與優(yōu)化技巧,從而構(gòu)建高效可靠的緩存系統(tǒng),希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Java Set簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java Set簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Set最大的特性就是不允許在其中存放的元素是重復(fù)的。接下來(lái)通過(guò)本文給大家分享java set常用方法和原理分析,需要的的朋友參考下吧
    2017-05-05
  • Java執(zhí)行cmd命令兩種實(shí)現(xiàn)方法解析

    Java執(zhí)行cmd命令兩種實(shí)現(xiàn)方法解析

    這篇文章主要介紹了Java執(zhí)行cmd命令兩種實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java 調(diào)用天氣Webservice詳解及實(shí)例代碼

    Java 調(diào)用天氣Webservice詳解及實(shí)例代碼

    這篇文章主要介紹了Java 調(diào)用天氣Webservice詳解及實(shí)例代碼的相關(guān)資料,這里附實(shí)例代碼,使用java 調(diào)用webservice 的小應(yīng)用,需要的朋友可以參考下
    2016-11-11
  • java實(shí)現(xiàn)圖形化界面計(jì)算器

    java實(shí)現(xiàn)圖形化界面計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)圖形化界面計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05

最新評(píng)論