1. 程式人生 > >==和equals()都可用於比較兩個運算元是否相等,它們有什麼區別嗎?

==和equals()都可用於比較兩個運算元是否相等,它們有什麼區別嗎?

= =是一個關係運算符,用於判斷兩個簡單變數的值是否相等,或兩個引用變數的引用地址是否相等。
equals()是一個方法,用於判斷引用變數引用地址指向的儲存內容是否相等。
equals()是Object類中定義的一個方法,由於其他引用型別預設繼承Object,因此該方法在其他引用型別中都可以使用。程式碼如下:
int a = 10;
int b = 10;
//比較簡單變數a和b的值是否相等
System.out.println(a= =b);
String c = new String(“tom”);
String d = new String(“tom”);
//比較引用變數c和d的引用地址是否相等
System.out.println(c = = d);
//比較引用變數c和d的內容是否相等
System.out.println(c.equals(d));
上述程式碼執行結果如下:
true
false
true
注意:Object類中定義的equals()方法是直接使用==操作符實現的,因此,在自定義型別時建議重寫 equals()方法,實現自定義的比較規則。例如 String、Integer等類都已經對 equals()方法進行過重寫