Re: [问题] HashCode 与 内存位置的关联

楼主: pttworld (批踢踢世界)   2015-05-25 00:34:58
稍微看了一下原文和推文,有的是讲值,有的是讲方法,难以聚焦讨论。
以下讲方法是hashCode(),使用hashCode代表杂凑数值,是个值。
hashCode合理为hashCode()的回传值。
我用Y或N标注,仅供参考,其中我改一个中文字会让你的表达更清楚。
※ 引述《noapaov (单身汉)》之铭言:
: 标题: [问题] HashCode 与 内存位置的关联
: 时间: Sun May 24 18:01:23 2015
:
:
: 最近看了一下书籍, 不太清楚理解是否有错, 想请教一下各位
:
: Object 类别所提供的 hashCode() method, 主要是返回物件的内存位置
Y
:
: 经过运算后的整数, 所以与内存有密切关系
:
: 所以每个物件的HashCode()理论上应该都不一样, 但是有些子类别继承后会
Y
:
: 进行equals和HashCode的覆写,例如String、Array等, 所以就有可能造成 :
hashCode()
:
: 如果两个物件使用equals(Object) 测试结果为不相等,
:
: 则这两个物件呼叫 hashCode 时,可以获得不同的整数结果("可以相同,也可以不同")
^^^^
改成"但"
hashCode()
:
: 所以总结是如果继承Object类的子类别, 没有对equals hashCode进行改写,
hashCode()
:
: 那么这些物件产生的HashCode应该都不一样, 但如果重写就有可能造成HashCode相等, 但不一定是参考相同的内存位置情况
Y
:
: 不知道原理是否是这样
N,不是原理,但就呈现来说上面你写的都是Y。
:
:

Links booklink

Contact Us: admin [ a t ] ucptt.com