原文:问题:两个对象值相同(x.equals(y) == true),但是可能存在hashCode不同吗?

面试官的考察点 这道题仍然是考察JVM层面的基本知识,面试官认为,基本功扎实,才能写出健壮性和稳定性很高的代码。 涉及到的技术知识 x.equals y true ,这段代码,看起来非常简单,但其实里面还是涉及了一些底层知识点的,首先我们基于equals这个方法进行探索。 equals这个方法,在每个对象中都存在,以String类型为例,其方法定义如下 首先来分析第一段代码,判断传递进来的这个对象 ...

2021-10-28 10:18 0 402 推荐指数:

查看详情

两个对象相同(x.equals(y) == true),但却可以有不同的hashcode?

  这个得看情况,如果该对象重写了equals方法,那么可能会出现equals相同,但hashcode不同的情况,但假如没有重写equals方法,那么它默认继承是Object的equals方法,根据源码可知,此时equals相同hashcode一定相同。 抛开 ...

Thu May 09 03:24:00 CST 2019 0 2040
两个对象equals方法比较为true,它们的Hashcode相同吗?

两个对象equals方法比较为true,它们的Hashcode相同吗? 答:不一定相同。正常情况下,因为equals()方法比较的就是对象在内存中的,如果相同,那么Hashcode也应该相同。但是如果不重写hashcode方法,就会出现不相等的情况。 下面的话 ...

Sun Jun 11 18:18:00 CST 2017 0 9375
两个对象hashCode()相同,则 equals()也一定为 true,对吗?

在java中,equalshashcode是有设计要求的,equals相等,则hashcode一定相等,反之则不然。 为何会有这样的要求? 在集合中,比如HashSet中,要求放入的对象不能重复,怎么判定呢? 首先会调用hashcode,如果hashcode相等,则继续调用equals ...

Fri Oct 11 18:31:00 CST 2019 0 2944
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM