分析String中equals的底層方法

2021-09-26 01:14:30 字數 630 閱讀 5001

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方法...