== 和 equals 的区别是什么、两个对象的 hashCode()相同,则 equals()也必定为true?

== 和 equals 的区别是什么

"==" 对于基本类型来讲是值比较,对于引用类型来讲是比较的是引用;而 equals 默认状况下是引用比较,只是不少类从新了 equals 方法,好比 String、Integer 等把它变成了值比较,因此通常状况下 equals 比较的是值是否相等。spa

 两个对象的 hashCode()相同,则 equals()?

1. 若是两个对象相等,则hashcode必定也是相同的 code

2. 两个对象相等,对两个对象分别调用equals方法都返回true 对象

3. 两个对象有相同的hashcode值,它们也不必定是相等的 blog

 另外,equals方法被覆盖过,则hashCode方法也必须被覆盖为在散列表中,hashCode()相等即两个键值对的哈希值相等,然而哈希值相等,并不必定能得出键值对相等。hash

相关文章
相关标签/搜索