java 語言中String類equals()方法源碼閱讀分析

在面試和實際開發中常常會用到字符串String的比較,比較他們的值是否相等,和基本類型比較運算符不一樣的是,基本類型比較運算符比較的是它們的值,而若是使用比較運算符比較String類的值是否相等,則可能得不到想要的結果。好比以下的代碼。
6559238-fc36ec0998f92e42.png面試

從如上代碼咱們能夠看出來,對幾本類型進行比較的時候能夠使用比較運算符進行值的比較,而String類則須要使用equal()方法進行值的比較。爲何會這樣呢,咱們能夠查閱String類的equals()源代碼來進行分析。
6559238-114549eee535d1e1.png
(1)String類中equals()方法先對String對象和比較的對象進行比較,看是否指向同一個對象,若是true則是一個對象,值確定相等;
(2)判斷比較對象是否是String類型的,若是不是就返回False;
(3)若是是String類型,則比較兩個String對象長度是否相等,不相等就返回False;
(4)最後再在循環裏面一個一個字符進行比較,value是此String類的值的字符數組。數組

最後返回是否相等。spa

相關文章
相關標籤/搜索