溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

String中equals怎么重寫

發(fā)布時(shí)間:2022-02-23 14:22:07 來(lái)源:億速云 閱讀:245 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要為大家展示了“String中equals怎么重寫”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“String中equals怎么重寫”這篇文章吧。

equals 方法作為 Object 類定義方法,Object 也是所有類的父類,這里面也包括 String , String 重寫 equals 方法,我們來(lái)看看怎么重寫的。

第一步我們判斷需要比較的兩個(gè)字符串的引號(hào)是否相等,引號(hào)如果相等直接返回 true, 不相等繼續(xù)下面的判斷

第二部再判斷此對(duì)象是否有 String 的實(shí)例,沒(méi)有的話返回 false,是的話兩個(gè)字符串長(zhǎng)度再比較是否相等,不相等無(wú)需再比較。如果相等比較兩個(gè)字符串的字符是否相等,如果有一個(gè)不相等就返回 false。

疑惑點(diǎn):

if (this == anObject) {
  return true;
}

判斷語(yǔ)句如何返回 true?字符串比較的是堆空間嗎?String.intern()方法表示概念在不同 JDK  版本有不同區(qū)分

在 JDK1.7 后 intern 方法判斷運(yùn)行常量池是否有指定的字符串,如果沒(méi)有就把字符串添加如常量池,返回其對(duì)象。

private void StringOverrideEquals(){

  String s1 = "aaa";
  String s2 = "aa" + new String("a");
  String s3 = new String("aaa");

  System.out.println(s1.intern().equals(s1));
  System.out.println(s1.intern().equals(s2));
  System.out.println(s3.intern().equals(s1));

}

以上是“String中equals怎么重寫”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI