答: 不对,如果两个对象x和y满足x.equals(y) == true,它们的哈希码(hash code)应当相同。Java对于eqauls方法和hashCode方法是这样规定的:(1)如果两个对象相同(equals方法返回true),那么它们的hashCode值一定要相同;(2)如果两个 ...
也对,也不对。 如果此对象重写了equals方法,那么可能出现这两个对象的equals相同,而hashcode不同。 如果此对象继承Object,没有重写equals方法,那么就使用Object的equals方法,Object对象的equals方法默认是用 实现的,那么如果equals相同,hashcode一定相同。 Object 的equals方法: 操作符专门用来比较两个变量的值是否相等,也就 ...
2017-04-12 17:56 0 5525 推荐指数:
答: 不对,如果两个对象x和y满足x.equals(y) == true,它们的哈希码(hash code)应当相同。Java对于eqauls方法和hashCode方法是这样规定的:(1)如果两个对象相同(equals方法返回true),那么它们的hashCode值一定要相同;(2)如果两个 ...
不对,如果两个对象x和y满足x.equals(y) == true,它们的哈希码(hash code)应当相同。Java对于eqauls方法和hashCode方法是这样规定的:(1)如果两个对象相同(equals方法返回true),那么它们的hashCode值一定要相同;(2)如果两个对象 ...
答:不对,有相同的 hash code这是java语言的定义:1) 对象相等则hashCode一定相等;2) hashCode相等对象未必相等 1.如果是基本变量,没有hashcode和equals方法,基本变量的比较方式就只有==; 2.如果是变量,由于在java中所有变量定义都是一个指向 ...
这个得看情况,如果该对象重写了equals方法,那么可能会出现equals相同,但hashcode不同的情况,但假如没有重写equals方法,那么它默认继承是Object的equals方法,根据源码可知,此时equals相同,hashcode一定相同。 抛开 ...
面试官的考察点 这道题仍然是考察JVM层面的基本知识,面试官认为,基本功扎实,才能写出健壮性和稳定性很高的代码。 涉及到的技术知识 (x.equals(y)==true),这段代码,看起来非常简单,但其实里面还是涉及了一些底层知识点的,首先我们基于equals这个方法进行探索 ...
两个对象用equals方法比较为true,它们的Hashcode值相同吗? 答:不一定相同。正常情况下,因为equals()方法比较的就是对象在内存中的值,如果值相同,那么Hashcode值也应该相同。但是如果不重写hashcode方法,就会出现不相等的情况。 下面的话 ...
1.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? 不对,两个对象的 hashCode()相同,equals()不一定 true。 代码示例: 执行的结果: str1:1179395 | str2 ...
在java中,equals和hashcode是有设计要求的,equals相等,则hashcode一定相等,反之则不然。 为何会有这样的要求? 在集合中,比如HashSet中,要求放入的对象不能重复,怎么判定呢? 首先会调用hashcode,如果hashcode相等,则继续调用equals ...