hashCode 和 equals ==
1.所有类直接或者间接集成Object 类 hashCode 和 equals 是可以重写
== java 规定不能重新 ==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
Object 类中equals 默认实现,
hashCode 的 默认实现 JDK 自动实现计算的int 型
通常很多类都重新这两个方法
一般规定
- 如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同
- 两个对象的hashCode相同,并不一定表示两个对象就相同,也就是不一定适用于equals(java.lang.Object) 方法,只能够说明这两个对象在散列存储结构中,如Hashtable,他们“存放在同一个篮子里
String 类重新的方法
根据val 值计算 hash
判断value 值的每一个字符都相同
在Hash 集合中 的重写
hashCode 是 key 和 value hash 的 异或
equals 为 key 和 value 都相等