理解Java中的hashCode和equals方法

2018-01-31 10:59:34来源:oschina作者:素雷人点击

分享

1.equals方法,在JDK默认的情况下比较的是对象的内存地址


比较两个对象,需要重写equals方法,将除了比较对象,成员变量也做比较


2.hashcode方法,默认情况下返回的是一个唯一的整数,代表该实例的内存地址,注意这个数字 并不是实际的内存地址,Java是没办法直接获取内存地址的,必须得由C或者C++获取,所以这个方法是用 native修饰的。在HashMap等结构中,保存key时,会根据hashcode决定存储位置。


总结:


(1)如果两个对象相等,那么他们必定有相同的hashcode


(2)如果两个对象的hashcode相等,他们却不一定相等


(3)重写equasl方法时,一定要记得重写hashcode方法,尤其用在hash类的数据结构中。

https://mp.weixin.qq.com/s/_wVLYxmMwJsYsLJOaOQ5Hw

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台