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

詳細(xì)講解Java中==與equals的區(qū)別對(duì)比

 更新時(shí)間:2023年09月04日 08:41:37   作者:cool_boy  
這篇文章主要為大家詳細(xì)介紹了Java中==與equals的區(qū)別對(duì)比,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,感興趣的同學(xué)可以參考閱讀下

java == 與 equals 的對(duì)比

== 是一比較運(yùn)算符

  • 既可以判斷基本類型,又可以判斷引用類型。
  • 如果判斷基本類型,判斷的是值是否相等。
   
    int x = 80;
    double y = 80.0;
    System.out.println(x==y); //true
  • 如果判斷引用類型,判斷的是地址是否相等,既判斷是不是同一個(gè)對(duì)象。
    A a = new A();
        A b = a;
        A c = b;
    System.out.println(b==c); //ture
    System.out.println(a==c); //ture
    B g = a;
    System.out.println(g==a); //ture
class B{ }
class A extends B{ }

equals 方法

  • 是Object類中的方法,只能判斷引用類型。
Object的 equals 源碼
public boolean equals(Object anObject) {
    if (this == anObject) {   //如果是同一個(gè)對(duì)象
        return true;      //返回true
    }
}   
案例
     Cat cat1 = new Cat("小花",2);
     Cat cat2 = new Cat("小花",2);
     /*
      Java Object 類是所有類的父類,也就是說(shuō) Java 的所有類都繼承了 Object,**子類可
      以使用  Object 所有方法**。
     */
     System.out.println(cat1.equals(cat2));  //false   判斷是不是同一個(gè)對(duì)象
class Cat{
    private String name;
    private int age;
    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
  • 默認(rèn)判斷的是地址是否相等,既判斷是不是同一個(gè)對(duì)象。子類中往往重寫該方法,用于判斷內(nèi)容是否相等。比如( String, Integer)
//把object的equals方法重寫了,變成了比較兩個(gè)字符串值 是否相同
String類的 equals方法 源碼
if (anObject instanceof String) { //判斷類型
    String anotherString = (String)anObject; //向下轉(zhuǎn)型
    int n = value.length;
    if (n == anotherString.value.length) { //如果長(zhǎng)度相同
        char v1[] = value;
        char v2[] = anotherString.value;
        int i = 0;
        while (n-- != 0) { //然后一個(gè)一個(gè)的比較字符
            if (v1[i] != v2[i])
                return false;
            i++;
        }
        return true; //如果兩個(gè)字符串的所有字符都相等,則返回true
    }
}
return false; //如果比較的不是字符串,則直接返回false
案例一:
        Cat cat1 = new Cat("小花",2);
        Cat cat2 = new Cat("小花",2);
        System.out.println(cat1.equals(cat2));  //true
class Cat{
    private String name;
    private int age;
    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }
    //這里重寫equals方法
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Cat cat = (Cat) o;
        return age == cat.age &&
                Objects.equals(name, cat.name);
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
案例二:
    String str1 = new String("好好學(xué)習(xí)");
    String str2 = new String("好好學(xué)習(xí)");
    System.out.println(str1.equals(str2)); //true
Integer 也重寫了object的 equals 方法,變成了判斷兩個(gè)值是否相同
源碼  
  public boolean equals(Object obj) {
     if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
  }
Integer integer1 = new Integer(1000);
Integer integer2 = new Integer(1000);
System.out.println(integer.equals(integer1)); //true 判斷兩個(gè)值是否相等

以上就是詳細(xì)講解Java中==與equals的區(qū)別對(duì)比的詳細(xì)內(nèi)容,更多關(guān)于Java ==與equals區(qū)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java文件操作實(shí)例詳解

    Java文件操作實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了Java文件操作實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Spring Cloud Data Flow初體驗(yàn)以Local模式運(yùn)行

    Spring Cloud Data Flow初體驗(yàn)以Local模式運(yùn)行

    這篇文章主要介紹了Spring Cloud Data Flow初體驗(yàn)以Local模式運(yùn)行,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot實(shí)現(xiàn)統(tǒng)一封裝返回前端結(jié)果集的示例代碼

    SpringBoot實(shí)現(xiàn)統(tǒng)一封裝返回前端結(jié)果集的示例代碼

    在實(shí)際項(xiàng)目開(kāi)發(fā)過(guò)程中,我們經(jīng)常將返回?cái)?shù)據(jù)的基本形式統(tǒng)一為JSON格式的數(shù)據(jù)。但項(xiàng)目可能是由很多人開(kāi)發(fā)的,所以我們最好將返回的結(jié)果統(tǒng)一起來(lái)。本文介紹了SpringBoot實(shí)現(xiàn)統(tǒng)一封裝返回前端結(jié)果集的示例代碼,需要的可以參考一下
    2022-06-06
  • Java13 明天發(fā)布(最新最全新特性解讀)

    Java13 明天發(fā)布(最新最全新特性解讀)

    這篇文章主要介紹了Java13 明天發(fā)布,最新最全新特性解讀,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 解決Java報(bào)錯(cuò)OutOfMemoryError的完整方案

    解決Java報(bào)錯(cuò)OutOfMemoryError的完整方案

    在Java編程中,OutOfMemoryError是一種常見(jiàn)的致命錯(cuò)誤,通常發(fā)生在JVM內(nèi)存耗盡時(shí),本文將詳細(xì)探討OutOfMemoryError的成因、解決方案以及預(yù)防措施,幫助開(kāi)發(fā)者理解和避免此類問(wèn)題,從而提高代碼的健壯性和可靠性,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • Java面試題沖刺第二十天--算法(1)

    Java面試題沖刺第二十天--算法(1)

    這篇文章主要為大家分享了最有價(jià)值的三道關(guān)于算法的面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-08-08
  • MyBatis Map結(jié)果的Key轉(zhuǎn)為駝峰式

    MyBatis Map結(jié)果的Key轉(zhuǎn)為駝峰式

    今天小編就為大家分享一篇關(guān)于MyBatis Map結(jié)果的Key轉(zhuǎn)為駝峰式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • Java實(shí)現(xiàn)TXT文件導(dǎo)入功能的詳細(xì)步驟

    Java實(shí)現(xiàn)TXT文件導(dǎo)入功能的詳細(xì)步驟

    在實(shí)際開(kāi)發(fā)中,很多應(yīng)用場(chǎng)景需要將用戶上傳的 TXT 文件進(jìn)行解析,并將文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)或其他存儲(chǔ)系統(tǒng)中,本文將演示如何用 Java 實(shí)現(xiàn)一個(gè)基本的 TXT 文件導(dǎo)入功能,需要的朋友可以參考下
    2025-08-08
  • SpringBoot結(jié)合Redis實(shí)現(xiàn)接口冪等性的示例代碼

    SpringBoot結(jié)合Redis實(shí)現(xiàn)接口冪等性的示例代碼

    本文主要介紹了SpringBoot結(jié)合Redis實(shí)現(xiàn)接口冪等性的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Java concurrency之公平鎖(一)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java concurrency之公平鎖(一)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了Java concurrency之公平鎖的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評(píng)論

铅山县| 加查县| 武强县| 仁化县| 吉安市| 景东| 长葛市| 甘泉县| 丰城市| 锡林郭勒盟| 法库县| 乐陵市| 莫力| 兴安县| 平乡县| 宜黄县| 大埔区| 肇东市| 苍南县| 汤阴县| 崇明县| 鲁山县| 高清| 峡江县| 尼玛县| 太康县| 旌德县| 孙吴县| 民勤县| 大竹县| 玉田县| 津市市| 商河县| 通化市| 崇文区| 新宁县| 昌都县| 扶绥县| 汽车| 阿城市| 深水埗区|