==和equals比較運算符

兩者使用時注意如下用法:
1.當使用==來判斷兩個變量是否相等時,如果2個變量是基本類型的變量,且都是數值型(不一定要求數據類型嚴格形同),則只要兩個變量的值相等,將返回true;
2.當使用==來判斷兩個引用類型的變量,必須它們指向同一個對象時,纔會返回true;

3..String的equals方法判斷兩個字符串相等的標準是:只要兩個字符串所包含的字符序列相同,及返回true;

String已經重寫了Object的equals()方法,String的equlas()方法判斷兩個字符串相等的標準是:只要兩個字符串所包含的字符序列相同,通過equals()比較將返回true,否則將返回false。

4.equals方法也是Object類提供的一個實例方法,因此所有引用變量都可以調用該方法來判斷是否與其他引用變量相等。但這個方法判斷兩個對象相等的標準與==符號沒有區別,同樣要求兩個引用變量指向同一個對象纔會返回true。因此這個Obejct類提供的equals方法沒有太大的實際意義,如果希望採用自定義的相等標準,可採用重寫equals方法實現。Object默認提供的equals()只是比較對象的地址,即Object類的equals方法比較的結果與==運算符比較的結果完全相同。
5..如果希望採用自定義的相等標準,可採用重寫equals方法來實現。.重寫equals方法應該滿足下列條件:
a).自反性:對任意x,x.equals(x)一定返回true;
b).對稱性:對任意x和y,x.equals(y)返回true,則y.equals(x)也返回true;
c).傳遞性:對於中間變量相等後,可得知兩者相等;
d).一致性:多次比較結果相同;

e).對任何不是null的x,x.equals(null)一定返回false;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章