產生 boolean 結果:<、>、<=、>=、==、!=。
==/!= 適用所有內建類型,其他比較不適用 boolean。
Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1 == n2); // false!比較的是記憶體地址 System.out.println(n1 != n2); // true
System.out.println(n1.equals(n2)); // true!比較實際數值
class Value { int i; }
Value v1 = new Value(); v1.i = 100;
Value v2 = new Value(); v2.i = 100;
System.out.println(v1.equals(v2)); // false!預設比較參考
原因:Object.equals() 預設實現為 ==(比較參考)。
解決:在自定義類別中 覆寫 equals() 比較有意義的欄位(第 7 章詳述)。
絕大多數標準類別(String、Integer、集合類等)已正確覆寫 equals(),比較的是內容而非參考。
==/!===