equal() 与hashcode()之我理解
2016-03-15 17:50
441 查看
再次看hashmap时,突然然想起很久很久以前一个面试官的问题,equal()与hashcode()之间的关系,没有看源码很是憋屈。。回来后依然百度找答案,,结果:
①两个obj,如果equals()相等,hashCode()一定相等
②两个obj,如果hashCode()相等,equals()不一定相等
现在依然不理解,只有看源码,,发现源码那面试官绝对是网上找的面试题忽悠人,,
equals()、hashCode都只是Object的2个方法而已,只不过Object 类比较equals 是比较内存地址、hashCode 是native 返回的也是内存地址。 然而他们根本没有半毛钱关系嘛,hashCode可以重写所有对象都相等,,equals()也可以重写都相等。
为啥非要把他们扯一块问。。
另外hashcode 是返回int 型 。。不知道8G内存 hashcode 怎么返回内存值 为int ? 有懂的朋友请告知一下!
①两个obj,如果equals()相等,hashCode()一定相等
②两个obj,如果hashCode()相等,equals()不一定相等
现在依然不理解,只有看源码,,发现源码那面试官绝对是网上找的面试题忽悠人,,
equals()、hashCode都只是Object的2个方法而已,只不过Object 类比较equals 是比较内存地址、hashCode 是native 返回的也是内存地址。 然而他们根本没有半毛钱关系嘛,hashCode可以重写所有对象都相等,,equals()也可以重写都相等。
为啥非要把他们扯一块问。。
另外hashcode 是返回int 型 。。不知道8G内存 hashcode 怎么返回内存值 为int ? 有懂的朋友请告知一下!
相关文章推荐
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- C#常见算法面试题小结
- php 面试碰到过的问题 在此做下记录
- asp.net 面试+笔试题目第1/2页
- asp.net 面试 笔试题目[附答案]第1/3页
- Python爬虫工程师面试问题总结
- 谈谈最近深圳找工作经历
- 面试:(设计,架构)
- PHP中级面试经历
- 戴维营教育2015年iOS暑期班笔试面试基础考核题
- 一次有意思的面试
- 程序员编程面试取胜的8个技巧
- PHP相关面试中最经常涉及的12个问题
- [转]为什么面试官很少向求职者解释原因
- 面试时,你会问面试官哪些问题?
- asp.net面试中的四十一个经典题目
- 网络工程师面试常见问题
- 腾讯社招面试经历