說說Java里的equals(上)

Java字符串那些事兒一文發(fā)表后伤极,朋友給我留言說:比較字符串用equals不就完了唄,干嘛要用"=="姨伤,吃飽了撐的哨坪,能不能來點實際的。其實在文章里我是想表明乍楚,Java字符串兩種聲明方式在堆內(nèi)存中不同的體現(xiàn)当编,我們在寫代碼過程中,為了避免重復(fù)的創(chuàng)建對象徒溪,盡量使用String s1 ="123" 而不是String s1 = new String("123")忿偷,因為JVM對前者給做了優(yōu)化拧篮。

那么,我們今天來說說equels牵舱,話不多說串绩,上代碼:

執(zhí)行一下,結(jié)果如下:

面試題中老問"=="與和equals有什么區(qū)別芜壁,甚至連百度搜索equals也會自動關(guān)聯(lián)出equals和"=="的區(qū)別這一類的問題來礁凡。

筆者一直認為,這兩者之間沒有必然的聯(lián)系慧妄,在引用類型中顷牌,"=="是比較兩個引用是否指向堆內(nèi)存里的同一個地址(同一個對象),而equals是一個普通的方法塞淹,該方法返回的結(jié)果依賴于自身的實現(xiàn)窟蓝。我們先看一下Person這個類,并沒有equals方法呀饱普,那為什么不報錯呢运挫?在Java中,如果一個類沒有繼承其它類套耕,那么它默認繼承Object這個類谁帕,打開Object這個類看一下,發(fā)現(xiàn)如下代碼冯袍,Person這個類的equals方法就繼承自這里

很簡單匈挖,就一句代碼,判斷兩個引用是否指向同一個對象康愤,兩個Person對象在堆內(nèi)存中的表現(xiàn)如下圖所示:

所以代碼person1.equals(person2)等同于person1 == person2儡循,當然打印出來的結(jié)果是false。我們再來看看Integer這個類征冷, equals的實現(xiàn)如下:

當代碼執(zhí)行到System.out.println(itr.equals(lon))時择膝,會判斷傳入的lon這個對象是否是Integer類型,這里的lon是Long類型资盅,所以打印出來的結(jié)果當然是false了调榄。

最后是我們String的實現(xiàn)

當代碼執(zhí)行到:System.out.println(s3.equals(s4)),由于字符串底層char數(shù)組里存的都是{'1','0','0'}當然打印出來是true了呵扛。

如果喜歡本系列文章每庆,請為我點贊或順手分享,您的支持是我繼續(xù)下去的動力今穿,您也可以在評論區(qū)留言想了解的內(nèi)容缤灵,有機會本專欄會做講解,最后別忘了關(guān)注一下我。

轉(zhuǎn)載無限歡迎腮出,但請注明「作者」和「原文地址」帖鸦。轉(zhuǎn)載請在文中保留此段,感謝您對作者版權(quán)的尊重胚嘲。

上一篇:Java字符串那些事兒 - Java那些事兒

下一篇:Java中的數(shù)組 - Java那些事兒

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末作儿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子馋劈,更是在濱河造成了極大的恐慌攻锰,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妓雾,死亡現(xiàn)場離奇詭異娶吞,居然都是意外死亡,警方通過查閱死者的電腦和手機械姻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門妒蛇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人楷拳,你說我怎么就攤上這事绣夺。” “怎么了唯竹?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵乐导,是天一觀的道長。 經(jīng)常有香客問我浸颓,道長,這世上最難降的妖魔是什么旺拉? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任产上,我火速辦了婚禮,結(jié)果婚禮上蛾狗,老公的妹妹穿的比我還像新娘晋涣。我一直安慰自己,他們只是感情好沉桌,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布谢鹊。 她就那樣靜靜地躺著,像睡著了一般留凭。 火紅的嫁衣襯著肌膚如雪佃扼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天蔼夜,我揣著相機與錄音兼耀,去河邊找鬼。 笑死,一個胖子當著我的面吹牛瘤运,可吹牛的內(nèi)容都是我干的窍霞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拯坟,長吁一口氣:“原來是場噩夢啊……” “哼但金!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起郁季,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤冷溃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后巩踏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秃诵,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年塞琼,在試婚紗的時候發(fā)現(xiàn)自己被綠了菠净。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡彪杉,死狀恐怖毅往,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情派近,我是刑警寧澤攀唯,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站渴丸,受9級特大地震影響侯嘀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谱轨,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一戒幔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧土童,春花似錦诗茎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至罢吃,卻和暖如春楚午,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背刃麸。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工醒叁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓把沼,卻偏偏與公主長得像啊易,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子饮睬,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法租谈,類相關(guān)的語法,內(nèi)部類的語法捆愁,繼承相關(guān)的語法割去,異常的語法,線程的語...
    子非魚_t_閱讀 31,631評論 18 399
  • 轉(zhuǎn)自:http://blog.csdn.net/jackfrued/article/details/4492194...
    王帥199207閱讀 8,522評論 3 93
  • 夜班昼丑,今天有點熱呻逆,脫掉衣服。開機菩帝,下盤咖城,上盤…… 心情莫名的有的開心,不知道為啥呼奢。狀態(tài)持續(xù)好久宜雀,到凌晨四點左右,感...
    余九輝閱讀 217評論 0 0
  • 今天不知道怎么的握础,突然想起寫起文章來辐董!因為是很多的話想說,因為想幫助那些抑郁癥精神病的朋友們禀综!不是為我自己简烘! 精神...
    潘藍一閱讀 19,370評論 7 2
  • 你現(xiàn)在很討厭被別人麻煩夸研,這并不代表是你變自私了。理由很簡單依鸥,在這個懶癌泛濫的年代,你沒有必要幫助任何一個只想要不勞...
    栗子田閱讀 406評論 0 0