public boolean equals(object anobject)
if (anobject instanceof string)
return true;}}
return false;
}
一、上圖是equals的底層**需要注意的是:
1、判斷條件:
這裡面有兩個判斷條件:
二、引數是不是由string及其父類建立的物件:
2、得出下面三個結論:
一、比較的兩個資料相同時,第乙個if被執行,返回true
public class csdn
}
二、比較兩個string型別類:
public class csdn
}
此時執行的是第二個if中的,通過value這個全域性變數將其轉換成陣列,先比較呼叫的物件與比較物件的長度,如果相同在一 一比較 陣列中是否相同;
三、新的類:
public class csdn
}
此時由於輸入的為非string物件,所以只需要比較位址是否相同,要是位址不相同就是false String中equals的原始碼片段
看源 就會發現了。首先做的是比較引用,引用的如果是同乙個物件,直接返回true。做完return就結束了。如果引用不是同乙個位址,就往下走,判斷是否是string的乙個例項。同樣,不是的話直接返回。是的話,拿字串的長度做迴圈的控制變數,做迴圈。此處的value在源 裡面來看,應該就是string的混...
關於String類中重寫的equals方法
string anotherstring string anobject 此處為什麼要強制轉換?anobject instanceof string 不是已經判斷了是string型別了麼?轉換成string,是為了之後和string中的逐個字元進行比較。當string.equals string1 ...
Object 和 String 的equals比較
先看一段string 和 乙個普通類的equals方法的比較 object 中的equlas的使用 author dell public class testequals dog 中的沒有equals方法的重寫 author dell public class dog cat 重寫了equals方法...