Symmetry:兩個引用,a和 b,a.equals(b) if and only if b.equals(a) Reflexivity:所有非空引用, a.equals(a) Transitivity:If a.equals(b) and b.equals(c), then a.equals(c) Consistency with hashCode():兩個相等的對象必須有相同的hashCode()值 Object的規范中并沒有明確要求equals()和 hashCode() 必須一致 -- 它們的結果在隨后的調用中將是相同的,假設“不改變對象相等性比較中使用的任何信息。”這聽起來象“計算的結果將不改變,除非實際情況如此。”這一模糊聲明通常解釋為相等性和散列值計算應是對象的可確定性功能,而不是其它。