作者noapaov (单身汉)
看板java
标题Re: [问题] HashCode 与 记忆体位置的关联
时间Mon May 25 08:37:46 2015
感谢各位的推文, 我又查询了些相关资料,
证明Object.hashCode()会传的hash_code与记忆体有关系
以下是Java深入浅出第二版提供的资讯第559页, 大家可以参考看看
无法贴网址, 我直接key内容 :
"hashCode()预设的行为是会回传每个物件的序号( 大部分的JAVA版本
是依据记忆体位置计算此序号) " 大家可以Google上述内容
所以应该是说, Object.hashCode()的回传值是与记忆体有关连的
※ 引述《pttworld (批踢踢世界)》之铭言:
: 稍微看了一下原文和推文,有的是讲值,有的是讲方法,难以聚焦讨论。
: 以下讲方法是hashCode(),使用hashCode代表杂凑数值,是个值。
: hashCode合理为hashCode()的回传值。
: 我用Y或N标注,仅供参考,其中我改一个中文字会让你的表达更清楚。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.34.181.227
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1432514268.A.BE6.html
※ 编辑: noapaov (114.34.181.227), 05/25/2015 08:43:02
1F:推 pttworld: Y 05/25 08:54
2F:→ Killercat: 错很大,请见我下面推文... 05/25 16:38
3F:→ Killercat: 其实我真的觉得OpenJDK是个宝,没事真的能挖一挖... 05/25 16:39
4F:→ Killercat: 诶,我仔细看了一下cpp实作,看起来跟记忆体有关 05/25 16:43
5F:→ Killercat: 不过我没办法确定他现在跑的到底是那一组... 05/25 16:44
6F:→ Killercat: 这个问题在於她注释跟大多数实作都跟记忆体无关 05/25 16:45
7F:→ Killercat: 包含注解写的产生方法 可是我在原始码看到一行 05/25 16:45
8F:→ Killercat: 在某些不明情况下 value = intptr_t(obj) ; 05/25 16:46
9F:→ Killercat: 不过目前来说,我仍然认为跟记忆体无关的可能比较大 05/25 16:46
10F:→ Killercat: 看起来函数的hash_code指的是产生方法 但是我找不到 05/25 16:47
11F:→ Killercat: 产生方法的定义,这是比较模糊的地方... 05/25 16:47
12F:推 ctrlbreak: 你追一下code大概就会知道, 记忆体位置的概念其实比较 05/25 20:19
13F:→ ctrlbreak: 像Array的Index, 并不是memory address 05/25 20:21
14F:推 ctrlbreak: 我说的是java记忆体位置概念, 不适用其他语言 XD 05/25 20:31