兩者使用時注意如下用法:
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;
Java中 比較運算子和equals詳解
比較的是兩個基本資料型別的值是否相等,或者兩個物件的引用位址是否一樣。如下 public static void main string args 執行的結果為 true false true 原因 1 a和b都是基本資料型別,值也相等,所以 a b 為true 2 integer c 1000 是...
3 6 運算子 和equals 方法
對於基本資料型別來說,比較的是他們的值 值比較 int a 2 int b 3 int c 2 system.out.println a b false system.out.println a c true 對於引用資料型別來說,比較的是他們的引用 記憶體位址 person p1 new pers...
5 算術運算子和比較運算子
select product name,sale price,sale price 2 as sale price x2 from product 運算是以行為單位執行的 法則2 6 select子句中可以使用常數或者表示式 所有包含null的計算,結果肯定是null 通常情況下,類似5 0這樣除數...