App下載

String 中 equals 如何重寫?

猿友 2021-04-09 11:12:42 瀏覽數(shù) (3256)
反饋

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

重寫equals

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

第二部再判斷此對象是否有 String 的實例,沒有的話返回 false,是的話兩個字符串長度再比較是否相等,不相等無需再比較。如果相等比較兩個字符串的字符是否相等,如果有一個不相等就返回 false。

流程圖如下:

equals流程圖

疑惑點:

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

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

在 JDK1.7 后 intern 方法判斷運行常量池是否有指定的字符串,如果沒有就把字符串添加如常量池,返回其對象。

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));

}

以上就是小編為你整理的關(guān)于String 中 equals 如何重寫? 的全部內(nèi)容


0 人點贊