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

楼主: noapaov (单身汉)   2015-05-25 08:37:46
感谢各位的推文, 我又查询了些相关资料,
证明Object.hashCode()会传的hash_code与内存有关系
以下是Java深入浅出第二版提供的资讯第559页, 大家可以参考看看
无法贴网址, 我直接key内容 :
"hashCode()默认的行为是会回传每个物件的序号( 大部分的JAVA版本
是依据内存位置计算此序号) " 大家可以Google上述内容
所以应该是说, Object.hashCode()的回传值是与内存有关连的
※ 引述《pttworld (批踢踢世界)》之铭言:
: 稍微看了一下原文和推文,有的是讲值,有的是讲方法,难以聚焦讨论。
: 以下讲方法是hashCode(),使用hashCode代表杂凑数值,是个值。
: hashCode合理为hashCode()的回传值。
: 我用Y或N标注,仅供参考,其中我改一个中文字会让你的表达更清楚。
作者: pttworld (批踢踢世界)   2015-05-25 08:54:00
Y
作者: Killercat (杀人猫™)   2015-05-25 16:38:00
错很大,请见我下面推文...其实我真的觉得OpenJDK是个宝,没事真的能挖一挖...诶,我仔细看了一下cpp实作,看起来跟内存有关不过我没办法确定他现在跑的到底是那一组...这个问题在于她注释跟大多数实作都跟内存无关包含注解写的产生方法 可是我在原始码看到一行在某些不明情况下 value = intptr_t(obj) ;不过目前来说,我仍然认为跟内存无关的可能比较大看起来函数的hash_code指的是产生方法 但是我找不到产生方法的定义,这是比较模糊的地方...
作者: ctrlbreak   2015-05-25 20:19:00
你追一下code大概就会知道, 内存位置的概念其实比较像Array的Index, 并不是memory address我说的是java内存位置概念, 不适用其他语言 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com