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

Java詳細(xì)解析==和equals的區(qū)別

 更新時(shí)間:2022年04月07日 16:19:54   作者:崇尚學(xué)技術(shù)的科班人  
這篇文章主要介紹了Java中==和equals()的區(qū)別,,==可以使用在基本數(shù)據(jù)類型變量和引用數(shù)據(jù)類型變量中,equals()是方法,只能用于引用數(shù)據(jù)類型,需要的朋友可以參考下

1、== 解析

== 常用于相同的基本數(shù)據(jù)類型之間的比較,也可用于相同類型的對象之間的比較;

  • 如果 == 比較的是基本數(shù)據(jù)類型,那么比較的是兩個(gè)基本數(shù)據(jù)類型的值是否相等;
  • 如果 == 是比較的兩個(gè)對象,那么比較的是兩個(gè)對象的引用,那么就是比較兩個(gè)對象的引用是否相等,也就是判斷兩個(gè)對象是否指向了同一塊內(nèi)存區(qū)域;

2、equals 方法解析

equals 方法主要用于兩個(gè)對象之間,檢測一個(gè)對象是否等于另一個(gè)對象。

我們來看一看 Object 類中的 equals 方法的源碼

public boolean equals(Object obj) {
     return (this == obj);
 }

它的作用也是判斷兩個(gè)對象是否相等,一般有兩種使用情況:

情況一:對象的 equals 方法沒有被重寫,那么 equals 被調(diào)用時(shí)比較的是兩個(gè)對象的引用是否相等,也就是兩個(gè)對象是否指向了同一片內(nèi)存區(qū)域。此時(shí),其等價(jià)于 == 比較兩個(gè)對象。

Dog類

package com.xiao;

/**
 * @author :小肖
 * @date :Created in 2022/3/11 14:42
 */
public class Dog {

    private String name;

    private Integer age;


    public Dog() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Dog(String name, Integer age) {
        this.name = name;
        this.age = age;
    }
}

測試類

import com.xiao.Dog;

public class Test {

    public static void main(String[] args) {
        Dog dog = new Dog("小旺",2);
        Dog dog1 = new Dog("小旺",2);
        System.out.println(dog.equals(dog1));
    }
}

測試結(jié)果

false

情況二:對象的 equals 方法被重寫了。一般,我們進(jìn)行重寫后的 equals 方法比較的是兩個(gè)對象的內(nèi)容是否相等。如果相等的話,那么返回 true ,否則返回 false。

Dog類

package com.xiao;

/**
 * @author :小肖
 * @date :Created in 2022/3/11 14:42
 */
public class Dog {

    private String name;

    private Integer age;


    public Dog() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Dog(String name, Integer age) {
        this.name = name;
        this.age = age;
    }


    @Override
    public boolean equals(Object obj) {
        if(obj.getClass() != getClass()){
            return false;
        }
        Dog dog = (Dog) obj;
        if(dog.getAge() == age && dog.getName().equals(name)){
            return true;
        }
        return false;
    }
}

測試結(jié)果

測試類代碼和上面的一樣

true

3、equals方法具有以下特性

  • 自反性:對于任意不為 null 的引用值 x ,x.equals(x) 一定是 true。
  • 對稱性:對于任意不為 null 的引用值 x 和 y ,當(dāng)且僅當(dāng) x.equals(y) 是 true 時(shí),y.equals(x) 也是 true 。
  • 傳遞性:對于任意不為 null 的引用值 x 、y 和 z ,如果 x.equals(y) 是 true ,同時(shí) y.equals(z) 是 true,那么x.equals(z) 一定是 true 。
  • 一致性:對于任意不為 null 的引用值 x 和 y ,如果用于 equals 比較的對象信息沒有被修改的話,多次調(diào)用時(shí)x.equals(y) 要么一致地返回 true 要么一致地返回 false 。
  • 對于任意不為 null 的引用值 x,x.equals(null) 返回 false 。

到此這篇關(guān)于Java詳細(xì)解析==和equals的區(qū)別的文章就介紹到這了,更多相關(guān)Java ==和equals內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring boot整合Shiro實(shí)現(xiàn)單點(diǎn)登錄的示例代碼

    spring boot整合Shiro實(shí)現(xiàn)單點(diǎn)登錄的示例代碼

    本篇文章主要介紹了spring boot整合Shiro實(shí)現(xiàn)單點(diǎn)登錄的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • 淺談Maven環(huán)境隔離應(yīng)用

    淺談Maven環(huán)境隔離應(yīng)用

    這篇文章主要介紹了淺談Maven環(huán)境隔離應(yīng)用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • Java中常用阻塞隊(duì)列的問題小結(jié)

    Java中常用阻塞隊(duì)列的問題小結(jié)

    這篇文章主要介紹了Java常用阻塞隊(duì)列問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • 淺談servlet與jsp的關(guān)系

    淺談servlet與jsp的關(guān)系

    本文主要介紹了servlet與jsp的相關(guān)知識(shí),并總結(jié)出servlet與jsp之間的關(guān)系,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • Java在PowerPoint中添加上標(biāo)和下標(biāo)的實(shí)現(xiàn)方法

    Java在PowerPoint中添加上標(biāo)和下標(biāo)的實(shí)現(xiàn)方法

    當(dāng)我們在演示文稿中添加商標(biāo)、版權(quán)或其他符號(hào)時(shí),我們可能希望該符號(hào)出現(xiàn)在某個(gè)文本的上方或下方。在Microsoft PowerPoint中,我們可以通過對符號(hào)應(yīng)用上標(biāo)或下標(biāo)格式來實(shí)現(xiàn)這種效果,這篇文章主要介紹了Java在PowerPoint中添加上標(biāo)和下標(biāo),需要的朋友可以參考下
    2022-10-10
  • 一文搞懂String的intern()方法

    一文搞懂String的intern()方法

    這篇文章主要給大家介紹String的intern()方法,文中有詳細(xì)的代碼示例,感興趣的小伙伴讓我們一起來看看這究竟是個(gè)什么玩意
    2023-06-06
  • SpringBoot使用Scheduling實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼

    SpringBoot使用Scheduling實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼

    Spring Boot提供了一種方便的方式來實(shí)現(xiàn)定時(shí)任務(wù),即使用Spring的@Scheduled注解,通過在方法上添加@Scheduled注解,我們可以指定方法在何時(shí)執(zhí)行,本文我們就給大家介紹一下SpringBoot如何使用Scheduling實(shí)現(xiàn)定時(shí)任務(wù),需要的朋友可以參考下
    2023-08-08
  • springboot項(xiàng)目Redis統(tǒng)計(jì)在線用戶的實(shí)現(xiàn)示例

    springboot項(xiàng)目Redis統(tǒng)計(jì)在線用戶的實(shí)現(xiàn)示例

    最近做個(gè)項(xiàng)目需要統(tǒng)計(jì)在線用戶,本文主要介紹了springboot項(xiàng)目Redis統(tǒng)計(jì)在線用戶的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Java中的序列化機(jī)制詳細(xì)解讀

    Java中的序列化機(jī)制詳細(xì)解讀

    這篇文章主要介紹了Java中的序列化機(jī)制詳細(xì)解讀,序列化:將對象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)臄?shù)據(jù)形式(比如二進(jìn)制)的過程,反序列化:與序列化相對,把序列化轉(zhuǎn)換成的可以存儲(chǔ)或傳輸?shù)臄?shù)據(jù)形式轉(zhuǎn)化為對象的狀態(tài)信息的過程,需要的朋友可以參考下
    2023-11-11
  • jackson反序列化時(shí)如何忽略不需要的字段

    jackson反序列化時(shí)如何忽略不需要的字段

    這篇文章主要介紹了jackson反序列化時(shí)如何忽略不需要的字段,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論

西和县| 柏乡县| 阿坝| 龙岩市| 新巴尔虎左旗| 柳江县| 托里县| 交城县| 阿拉善盟| 庆云县| 鹤峰县| 广安市| 广南县| 呼图壁县| 灵武市| 南开区| 镇远县| 岑巩县| 西峡县| 利川市| 翁牛特旗| 通辽市| 南和县| 吐鲁番市| 琼结县| 桂东县| 蓬莱市| 饶河县| 忻州市| 高台县| 揭阳市| 东明县| 盱眙县| 吕梁市| 江永县| 伊宁市| 玉环县| 图片| 梁河县| 南陵县| 富顺县|