原文:(面试题)两个对象值相同 (x.equals(y) == true) ,但却可有不同的 hash code ,这 句话对不对

答:不对,有相同的 hash code这是java语言的定义: 对象相等则hashCode一定相等 hashCode相等对象未必相等 .如果是基本变量,没有hashcode和equals方法,基本变量的比较方式就只有 .如果是变量,由于在java中所有变量定义都是一个指向实际存储的一个句柄 你可以理解为c 中的指针 ,在这里 是比较句柄的地址 你可以理解为指针的存储地址 ,而不是句柄指向的实际内存 ...

2013-08-08 16:16 6 20872 推荐指数:

查看详情

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

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

Thu May 09 03:24:00 CST 2019 0 2040
问题:两个对象相同(x.equals(y) == true),但是可能存在hashCode不同吗?

面试官的考察点 这道题仍然是考察JVM层面的基本知识,面试官认为,基本功扎实,才能写出健壮性和稳定性很高的代码。 涉及到的技术知识 (x.equals(y)==true),这段代码,看起来非常简单,但其实里面还是涉及了一些底层知识点的,首先我们基于equals这个方法进行探索 ...

Thu Oct 28 18:18:00 CST 2021 0 402
两个对象equals方法比较为true,它们的Hashcode相同吗?

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

Sun Jun 11 18:18:00 CST 2017 0 9375
hashCode之一--两个对象相同,有相同hash code

两个对象相同(x.equals(y) == true),则一定有相同hash code。 这是java语言的定义: 因为:Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出 ...

Thu Aug 06 23:44:00 CST 2015 0 5530
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM