1.equals方法,在JDK默认的状况下比较的是对象的内存地址数据结构
比较两个对象,须要重写equals方法,将除了比较对象,成员变量也作比较code
2.hashcode方法,默认状况下返回的是一个惟一的整数,表明该实例的内存地址,注意这个数字 并非实际的内存地址,Java是没办法直接获取内存地址的,必须得由C或者C++获取,因此这个方法是用 native修饰的。在HashMap等结构中,保存key时,会根据hashcode决定存储位置。对象
总结:内存
(1)若是两个对象相等,那么他们一定有相同的hashcodehash
(2)若是两个对象的hashcode相等,他们却不必定相等变量
(3)重写equasl方法时,必定要记得重写hashcode方法,尤为用在hash类的数据结构中。方法
https://mp.weixin.qq.com/s/_wVLYxmMwJsYsLJOaOQ5Hwqq