Java题目:如果hashCode中返回常量1,会有什么结果?

我的个人理解就是hashCode返回一个常量值,这个值唯一代表当前对象。这样的话,哈希值为任何值都应该可以呀,为什么偏偏在为常量1的时候,有特殊情况呢。

首先,说一下这个“题目”中hashCode()返回常量1,重点在什么地方,重点在“常量”这两个字上,也就是说,每次使用java对象“.”hashCode()时,返回的都是相同的数值;
其次,说下hashCode()的值并不一定是对象在内存地址或物理地址,但是初学者可以这么理解;
第三,判断java对象的值是否相同的是equals方法,判断对象基本类型是否相同是用的==,而hashCode()这个方法也是比较对象是否相同的一个依据,当hashCode()返回常量时,所有对象都出现hash冲突,而hashCode()本身的性能也会降级。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-13
你随便一个对象toString 怎么可能是常量呢 明明是每个对象内存的地址值啊追问

是hashCode()方法,不是toString()方法。虽然两个方法有关联。

追答

你自己看看toString方法 全部是调用hashCode方法 你 有看过源代码吗建议关联下自己看 你打印普通对象的时候后面就包含hashCode

追问

谢谢你。