Java中的equsals和==
Java的equsals和==
前言:在我們常用的類中equals被重寫后,作用就是為了比較對(duì)象的內(nèi)容,==是比較對(duì)象的內(nèi)存地址。但并不能說所有的equals方法就是比較對(duì)象的內(nèi)容。
1、Java 中的==
1).對(duì)于對(duì)象引用類型:“==”比較的是對(duì)象的內(nèi)存地址。
比如說:
String s1 = "Hello"; String s2 = new String ("Hello"); System.out.println(s1 == s2);(false)
我們知道在使用new String時(shí),會(huì)重新創(chuàng)建一個(gè)String對(duì)象,因此,自然s1和s2引用是指向兩個(gè)不同的地方,因此顯示為false.
2).對(duì)于基本類型數(shù)據(jù)(int,double等),其實(shí)比較的是它的值。
2、Java 中equals方法
1).equals
是基本數(shù)據(jù)的包裝類型Integer
,Float
, Double
等常用類具有的方法,它(這里為Integer類)的作用,在官方給的(Integer)文檔中,說的就是:進(jìn)行對(duì)象間的比較,只有在滿足判斷條件,Integer所含的值和本對(duì)象的值相同時(shí)才會(huì)返回true。、
簡單來說,就是同類型,所含值相同即返回true.
Integer底層實(shí)現(xiàn)的時(shí)候用的是Integer.intValue();
將兩個(gè)對(duì)象之間的比較變成了基本數(shù)據(jù)類型的值比較。
2).但是,在最底層Object
類中,equals
方法和==是沒有區(qū)別的。我們比較的還是兩個(gè)對(duì)象的內(nèi)存地址。
眾所周知,我們所有的類都直接或間接地繼承自java.lang.Object類,因此我們可以通過重寫equals方法來實(shí)現(xiàn)我們自己想要的比較方法。之所以我們平常在用equals時(shí),都是在比較對(duì)象中的值,是因?yàn)閷?duì)equals進(jìn)行了重寫,讓他去進(jìn)行對(duì)象中的值比較(如最后上面的Integer類)。
所以我們也不能說,equals比較的就一定是對(duì)象的內(nèi)容。根據(jù)業(yè)務(wù)邏輯的不同,是能夠衍生出更多不同方法的
以上就是Java的equsals和==的詳細(xì)內(nèi)容,更多關(guān)于equsals和==的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- java synchronized 鎖機(jī)制原理詳解
- Java實(shí)現(xiàn)遞歸計(jì)算n的階乘
- java多線程模擬實(shí)現(xiàn)售票功能
- java實(shí)現(xiàn)多客戶聊天功能
- Java CharacterEncodingFilter過濾器的理解和配置案例詳解
- Java面試題沖刺第二十六天--實(shí)戰(zhàn)編程2
- Java面試題沖刺第二十五天--并發(fā)編程3
- Java面試題沖刺第二十六天--實(shí)戰(zhàn)編程
- Java DatabaseMetaData用法案例詳解
- Java 動(dòng)態(tài)數(shù)組的實(shí)現(xiàn)示例
相關(guān)文章
IDEA2020.2.3中創(chuàng)建JavaWeb工程的完整步驟記錄
這篇文章主要給大家介紹了關(guān)于IDEA2020.2.3中創(chuàng)建JavaWeb工程的完整步驟,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12mybatis-plus添加數(shù)據(jù)時(shí)id自增問題及解決
這篇文章主要介紹了mybatis-plus添加數(shù)據(jù)時(shí)id自增問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01java數(shù)據(jù)結(jié)構(gòu)之樹基本概念解析及代碼示例
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)之樹基本概念解析及代碼示例,介紹了樹的定義,基本術(shù)語,主要操作及實(shí)現(xiàn)等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可了解下。2017-11-11Spring實(shí)戰(zhàn)之Bean定義中的SpEL表達(dá)式語言支持操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之Bean定義中的SpEL表達(dá)式語言支持操作,結(jié)合實(shí)例形式分析了Bean定義中的SpEL表達(dá)式語言操作步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12tio-boot框架整合ehcache實(shí)現(xiàn)過程示例
這篇文章主要為大家介紹了tio-boot框架整合ehcache實(shí)現(xiàn)過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12SpringBoot中@ConfigurationProperties注解的使用與源碼詳解
這篇文章主要介紹了SpringBoot中@ConfigurationProperties注解的使用與源碼詳解,@ConfigurationProperties注解用于自動(dòng)配置綁定,可以將application.properties配置中的值注入到bean對(duì)象上,需要的朋友可以參考下2023-11-11