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

詳解Java中“==”與equals()的區(qū)別

 更新時(shí)間:2017年02月03日 11:59:57   投稿:lqh  
這篇文章主要介紹了詳解Java中“==”與equals()的區(qū)別的相關(guān)資料,需要的朋友可以參考下

Java中“==”與equals()的區(qū)別

 對(duì)于關(guān)系操作符“==”,《Java編程思想》中是這樣描述的:“關(guān)系操作符生成的是一個(gè)boolean結(jié)果,它們計(jì)算的是操作數(shù)的值之間的關(guān)系”。這里的操作數(shù)的“值”值得我們注意。對(duì)于8種基本數(shù)據(jù)類(lèi)型(boolean,byte,char,short,int,float,double,long),它們的變量直接存儲(chǔ)的就是“值”。所以,我們用“==”對(duì)基本數(shù)據(jù)類(lèi)型的變量進(jìn)行比較時(shí),實(shí)際比較的就是變量存儲(chǔ)的值,例如:

public static void main(String[] args) {
    int a = 5, b = 5;
    System.out.println(a == b);
  }

很明顯,程序?qū)⑤敵觯簍rue。但是,下面這段代碼呢?

public static void main(String[] args) {
    Integer c = new Integer(5), d = new Integer(5);
    System.out.println(c == d);
  }

我們運(yùn)行程序,發(fā)現(xiàn)輸出的是:false。這是因?yàn)镮nteger并非Java中的基本數(shù)據(jù)類(lèi)型,其變量c、d在Java中被稱(chēng)為指向?qū)ο蟮囊?,其存?chǔ)的“值”是對(duì)象在內(nèi)存中的地址,而非值“5”本身。所以,c和d實(shí)際存儲(chǔ)的分別是兩個(gè)value值都為“5”的Integer對(duì)象的地址,這兩個(gè)對(duì)象不在同一塊內(nèi)存空間,“==”比較的結(jié)果自然是false了。

  那么equals()方法比較的是什么呢?equals()是基類(lèi)Object中定義的方法,在Object類(lèi)中,equals()方法定義為:

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

這等價(jià)于“==”。其實(shí),equals()方法的意義在于重寫(xiě),否則對(duì)equals()的調(diào)用是沒(méi)有意義的。例如,繼承自O(shè)bject的Integer類(lèi)便重寫(xiě)了equals()方法:

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

該方法的意義是對(duì)value值進(jìn)行比較,那么如果我們對(duì)于兩個(gè)具有相同value值的Integer對(duì)象調(diào)用equals()進(jìn)行比較:

public static void main(String[] args) {
    Integer c = new Integer(5), d = new Integer(5);
    System.out.println(c.equals(d));
  }

結(jié)果便是true。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • java中char對(duì)應(yīng)的ASCII碼的轉(zhuǎn)化操作

    java中char對(duì)應(yīng)的ASCII碼的轉(zhuǎn)化操作

    這篇文章主要介紹了java中char對(duì)應(yīng)的ASCII碼的轉(zhuǎn)化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • java版十大排序經(jīng)典算法:完整代碼(2)

    java版十大排序經(jīng)典算法:完整代碼(2)

    優(yōu)秀的文章也不少,但是Java完整版的好像不多,我把所有的寫(xiě)一遍鞏固下,同時(shí)也真誠(chéng)的希望閱讀到這篇文章的小伙伴們可以自己去從頭敲一遍,不要粘貼復(fù)制!希望我的文章對(duì)你有所幫助,每天進(jìn)步一點(diǎn)點(diǎn)
    2021-07-07
  • 一文搞懂Mybatis-plus的分頁(yè)查詢操作

    一文搞懂Mybatis-plus的分頁(yè)查詢操作

    說(shuō)起分頁(yè)機(jī)制,相信我們程序員都不陌生,今天,我就給大家分享一下Mybatis-plus的分頁(yè)機(jī)制,供大家學(xué)習(xí)和Copy,感興趣的可以了解一下
    2022-06-06
  • Java中的Lambda表達(dá)式詳解

    Java中的Lambda表達(dá)式詳解

    這篇文章主要介紹了Java中的Lambda表達(dá)式詳解,Lambda 表達(dá)式是 JDK8 的一個(gè)新特性,可以取代大部分的匿名內(nèi)部類(lèi),寫(xiě)出更優(yōu)雅的 Java 代碼,尤其在集合的遍歷和其他集合操作中,可以極大地優(yōu)化代碼結(jié)構(gòu),需要的朋友可以參考下
    2024-01-01
  • 比較排序之冒泡排序的實(shí)現(xiàn)

    比較排序之冒泡排序的實(shí)現(xiàn)

    下面小編就為大家?guī)?lái)一篇比較排序之冒泡排序的小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧實(shí)現(xiàn)。
    2017-06-06
  • spring強(qiáng)行注入和引用實(shí)例解析

    spring強(qiáng)行注入和引用實(shí)例解析

    這篇文章主要介紹了spring強(qiáng)行注入和引用實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • RPC框架之Thrift的入門(mén)教程

    RPC框架之Thrift的入門(mén)教程

    Thrift是一個(gè)跨語(yǔ)言的服務(wù)部署框架,主要用于各個(gè)服務(wù)之間的RPC通信,支持跨語(yǔ)言,下面小編就來(lái)和大家講講Thrift框架的具體使用,希望對(duì)大家有所幫助
    2023-10-10
  • Java泛型機(jī)制必要性及原理解析

    Java泛型機(jī)制必要性及原理解析

    這篇文章主要介紹了Java泛型機(jī)制必要性及原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java實(shí)現(xiàn)將導(dǎo)出帶格式的Excel數(shù)據(jù)到Word表格

    Java實(shí)現(xiàn)將導(dǎo)出帶格式的Excel數(shù)據(jù)到Word表格

    在Word中制作報(bào)表時(shí),我們經(jīng)常需要將Excel中的數(shù)據(jù)復(fù)制粘貼到Word中,這樣則可以直接在Word文檔中查看數(shù)據(jù)而無(wú)需打開(kāi)另一個(gè)Excel文件。本文將通過(guò)Java應(yīng)用程序詳細(xì)介紹如何把帶格式的Excel數(shù)據(jù)導(dǎo)入Word表格。希望這篇文章能對(duì)大家有所幫助
    2022-11-11
  • SpringBoot集成ECDH密鑰交換的方法

    SpringBoot集成ECDH密鑰交換的方法

    ECDH密鑰交換算法通過(guò)橢圓曲線和Diffie-Hellman方法生成共享密鑰,用于前端和后端之間的AES加密通信,前端使用elliptic.js生成密鑰對(duì),后端使用crypto-js.min.js進(jìn)行AES加密,本文給大家介紹SpringBoot集成ECDH密鑰交換的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2025-01-01

最新評(píng)論

罗甸县| 鄂州市| 杭州市| 平安县| 红桥区| 海门市| 乌什县| 溆浦县| 舟山市| 大同市| 瓮安县| 溧水县| 合作市| 田东县| 平顶山市| 景德镇市| 饶阳县| 平武县| 木兰县| 陕西省| 米易县| 宣城市| 平昌县| 新竹县| 淳安县| 汝州市| 长白| 喀喇沁旗| 江永县| 金昌市| 石河子市| 瓦房店市| 进贤县| 龙陵县| 晋州市| 清河县| 新沂市| 溧水县| 开封县| 息烽县| 始兴县|