hashCode 和 equals ==

 

1.所有类直接或者间接集成Object 类   hashCode  和 equals 是可以重写   

   == java 规定不能重新   ==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true

 Object  类中equals   默认实现,

 

hashCode   的 默认实现  JDK 自动实现计算的int 型

 

通常很多类都重新这两个方法 

一般规定

  1. 如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同
  2. 两个对象的hashCode相同,并不一定表示两个对象就相同,也就是不一定适用于equals(java.lang.Object) 方法,只能够说明这两个对象在散列存储结构中,如Hashtable,他们“存放在同一个篮子里

String 类重新的方法

   根据val 值计算 hash

 

 判断value 值的每一个字符都相同

 

 

 

在Hash 集合中 的重写

  hashCode 是 key 和 value hash 的  异或

  equals 为 key 和 value 都相等

      

 

 

 

posted @ 2019-07-24 15:52  _debug—  阅读(106)  评论(0编辑  收藏  举报