范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Java面试为什么重写equals()就一定要重写hashCode()方法

  "为什么重写 equals() 就一定要重写 hashCode() 方法?"
  一个工作了4年的粉丝,好不容易拿到一个面试机会,结果就被这个问题暴击了!没办法,只能来向我求助了。
  经常有同学在后台跟我吐槽,在求职过程中遇到的各种面试难题。
  我发现大部分的问题之前的文章都有分析过,考虑到文章可能太过分散,不方便大家学习,所以我系统整理了一份20万字的文档,有需要的Si信我发送"Mic"领取。
  回答这个问题之前,我们先来分析一下这个问题的背景。问题分析
  关于这个问题,首先需要深入了解一下equals这个方法。
  这个 equals  方法是String这个类里面的实现。
  从代码中可以看到,当调用equals比较两个对象的时候,会做两个操作 用 ==  号比较两个对象的内存地址,如果地址相同则返回true 否则,继续比较字符串的值,如果两个字符串的值完全相等,同样返回true
  那equals和hashCode()有什么关系呢? 首先,Java里面任何一个对象都有一个native的hashCode()方法 其次,这个方法在散列集合中会用到,比如HashTable、HashMap这些,当添加元素的时候,需要判断元素是否存在,而如果用equals效率太低,所以一般是直接用对象的hashCode的值进行取模运算。
  如果table中没有该hashcode值,它就可以直接存进去,不用再进行任何比较了;
  如果存在该hashcode值, 就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址,所以这里存在一个冲突解决的问题,这样一来实际调用equals方法的次数就大大降低了。
  hashCode的值默认是JVM使用随机数来生成的,两个不同的对象,可能生成的HashCode会相同。
  这种情况在Hash表里面就是所谓的哈希冲突,通常会使用链表或者线性探测等方式来解决冲突问题。
  但是如果两个完全相同的对象,也就是内存地址指向同一个,那么他们的hashCode一定是相同的。
  了解了equals和hashCode的关系以后,再来分析这个面试题。
  在理论情况下,如果 x.equals(y)==true  ,如果没有重写equals方法,那么这两个对象的内存地址是同一个,意味着hashCode必然相等。
  但是如果我们只重写了equals方法,就有可能导致hashCode不相同。
  一旦出现这种情况,就导致这个类无法和所有集合类一起工作。
  所以,在实际开发中,约定俗成了一条规则,重写 equals  方法的同时也需要重写 hashCode  方法。 高手:
  如果只重写equals方法,不重写hashCode方法。
  就有可能导致 a.equals(b)  这个表达式成立,但是hashCode却不同。
  那么这个只重写了 equals  方法的对象,在使用散列集合进行存储的时候就会出现问题。
  因为散列结合是使用hashCode来计算key的存储位置,如果存储两个完全相同的对象,但是有不同的hashcode就会导致这两个对象存储在hash表的不同位置,当我们想根据这个对象去获取数据的时候,就会出现一个悖论,一个完全相同的对象会在存储在hash表的两个位置,造成大家约定俗成的规则,出现一些不可预料的错误。 总结
  强调一遍,基础很重要,基础很重要。
  不要觉得每天写CRUD能解决业务问题就很牛逼了,等你工作了7~8年以后会发现
  对技术体系化的理解和技术底层原理的学习才是自己的核心竞争力。
  喜欢我作品的同学记得转发、收藏、点赞!!
  最新的资料文档已整理,包含如下 (还在持续更新中!):
  ①100道最新大厂经典面试题解析资料文档!
  ②20万+字Java面试题解析和配套答案!
  ③从应届生到高级开发都适用的简历模板!
  ④从入门到精通的架构师学习路线图!
  ⑤还有各种技术流程图,路径图!
  有需要的 Si 我 "Mic"拿!

饮食起居要规律保持开心的状态健康守护计划饮食起居要规律,保持开心的状态。李保双脾胃科主任医师。从今以后不要认为萎缩性胃炎,我就不能吃了,知道吗?你只是控制量原来吃冰激凌,能吃3个球,我现在就吃一个就得了。这个意思包括水果古典园林配春色,大片场景已就绪,一起来打卡!市绿化市容局介绍,亭台楼阁,小桥流水间花盛开,青砖黛瓦,湖光水色中春意至。三月天,申城的春意浓浓,在申城的这些古典园林里,春花烂漫的美景已如约而至。详见古猗园春分过后,古猗园内的春绿色中国闲置屋顶穿新衣重庆获得阳光收益图为龙文集团的屋顶分布式光伏发电项目。梁钦卿摄中新网重庆4月9日电题闲置屋顶穿新衣重庆获得阳光收益作者梁钦卿没想到闲置屋顶竟能变成绿色电站。重庆龙文实业(集团)有限公司(下称龙文集2023粤港澳大湾区花展要来啦,仙湖植物园赏花全攻略这个春天,在深圳最值得做的事情是什么呢?那自然是去深圳仙湖植物园看花呀4月8日,也就是明天2023粤港澳大湾区花展就要在深圳仙湖植物园开展啦!芳菲四月,鹏城花开邀您共赏春与花造就的哎你们之前有见过,有吃过吗?手把手让你更健康天然的补肾王,别遇到了不认识。都知道六味地黄丸左归丸能补肾,但这些都是加工出来的中成药。今天给你分享几个天然的补肾的中草药。第一个黄精。能够补气养阴润肺,健脾益肾。对于平时身体既有退役公交车改造便民菜店现身北京来源人民网原创稿在公交便民驿栈购物的顾客。人民网记者王天乐摄在公交便民驿栈购物的顾客。人民网记者王天乐摄在公交便民驿栈购物的顾客。人民网记者王天乐摄在公交便民驿栈购物的顾客。人民网呔,俺老孙来也!张家界宝峰湖景区孙悟空雕塑成网红打卡点红网时刻记者李森林通讯员邓道理报道4月5日下午,世界自然遗产世界地质公园张家界宝峰湖景区西游记景观雕塑前,不少游客模仿孙悟空卖萌,趣味十足。宝峰湖作为西游记水帘洞外景拍摄地,现已成赏樱游创史上最佳!鼋头渚景区太湖饭店和湖滨饭店亮出ampampquot3月报ampampquot史上最佳!我市与赏樱游关联度最高的景区和饭店昨天亮出3月报鼋头渚景区3月份游客总量太湖饭店和湖滨饭店3月份客房出租率均创下单月历史新高。赏花游不仅重归正轨,而且呈快速发展态势。赏樱危急时刻,就该挺身而出!南通五山景区救人主角在通州找到了来源交汇点新闻客户端危急时刻,就该挺身而出。何况身为一名警察,为百姓排忧解难,我责无旁贷。在江苏省通州监狱,热心救人的警卫支队三级警长穆海浪回忆救人经过时,他的回应掷地有声。近日,北京七大花系21条赏花休闲农业线路发布,附全名单4月7日,京华乡韵梨韵瓜乡汇大兴北京市休闲农业十百千万畅游行动推介活动暨大兴区庞各庄镇第30届梨花旅游文化节开幕式在万亩梨园举行。全市春季7大花系以及21条赏花休闲农业线路正式揭晓体坛反腐重大突破!曝橄榄球一把手情况不妙,国手举报揭4大罪证最近中国足坛反腐取得重大进展之后,整个中国体坛在轰轰烈烈进行着反腐行动。根据李平康此前透露的消息,中国足坛取得非常重大的收获之后,其他领域也开始相关的举动,期待能够像中国足坛一样清
聊聊对岸不回来的底气1这两天最大的热点就是湾湾了。作为一个在海外旅居多年的人,我也接触过不少对岸人。先聊聊我印象中的他们,再说说我看到的一些数据。我在欧洲旅行的路上经常能碰到他们,他们那边的孩子毕业旅土耳其旅游,大街有姑娘问你借打火机,记住不要搭理她们如今,人们的生活是越来越好了,收入越来越高,手里也都有了存款,能够负担起更好的生活需求,比如说,在业余时间,人们除了会经常去一些休闲娱乐场所来放松自己外。(此处已添加小程序,请到今康养山西夏养山西丨感受夏日山水间的清凉山西炎炎夏日山间的流水林间的阴凉生机勃勃的美丽田园古朴纯粹的乡间小镇一起来山间水边感受夏日山水间的清凉山西人说山西好风光左手一指是太行,右手一指是吕梁五台山恒山历山芦芽山石膏山北武当山避暑胜地大水川这个周末的说走就走的旅行,原定是我和闺蜜两个人,结果不小心成了七个。周六出门前想的是去留坝,半路看导航前面一段堵车严重,就改道去了红河谷。去了以后本身想着在景区住一晚,结果没订到房峨眉山金顶十方普贤菩萨像很多去过峨眉山金顶的,都见过十方普贤菩萨像,这尊佛像是峨眉山的标志,也是世界上最大最高的,十方普贤菩萨像。这尊佛像由台座和十方普贤菩萨像组成,通高48米,代表佛祖的48个愿望,这尊路线寻奥运印记,体验农场生活,感受乡村趣味游戏研学探秘正所谓研有所思,学有所获,旅有所感,行有所成。在学校的课堂上,书本是孩子们的世界。而走出学校,世界是孩子们的书本。然而,研学也是旅游的一部分。当朋友们还在为研学去哪发愁的时散文欣赏再美的风景,都不及故乡的一草一木,一屋一巷再美的风景,都不及故乡的一草一木,一屋一巷女儿说两年多没回老家了,想回去看看。于是,昨天傍晚一家人驱车回乡。竟然迷路几次,也是够可以的,自嘲一下。一路前行,晚霞,风车,青纱帐在熟悉最小的海如果问你是海大还是湖大,你一定会毫不犹豫地说海比湖大。但事实上,世间真的有比湖还小的海,它就是世界上最小的海马尔马拉海。马尔马拉海位于亚洲的小亚细亚半岛和欧洲的巴尔干半岛之间,面积乡村民宿中的工业美学,如此精妙!国外经典作品合集提起乡村民宿,很多人想到的是半亩方塘一鉴开,天光云影共徘徊的田园美景,但殊不知,简单干练的工业美学应用到乡村民宿中,会别有一番风味!不信,来看这些作品!加拿大东部的特色小屋(Abe韩媒韩国济州岛55名泰国游客脱团失踪海外网8月8日电据韩联社7日报道,韩国出入境部门官员7日透露,截至7日的一个星期内,280名抵达韩国济州岛的泰国游客中,有55人下落不明。韩国济州岛移民局表示,8月2日至8月5日期独库公路变堵哭公路。打了谁的脸7月9日,新疆维吾尔自治区独库公路大堵车,日通车流量数万,由于该公路设计通行量有限,又没有及时引导疏流,致使逾三万两汽车堵车长达八小时以上,虽然没有关联性,蔚为壮观的堵车流还是让笔