我正在尝试理解该hashCode()方法的本机实现.这种方法到底是什么回归?它是一个内存地址还是一个随机值?
bsi*_*nau 38
.hashCode() 本机实现依赖于JVM.
例如,HotSpot有6个Object.hashCode()实现.您可以使用-XX:hashCode=n通过命令行运行JVM的标志来选择它,其中n:
0 - Park-Miller RNG(默认值)
1 - f(地址,global_statement)
2 - 常量1
3 - 串行计数器
4 - 对象地址
5 - 线程局部Xorshift
Jon*_*eet 22
从文档:
尽可能合理,Object类定义的hashCode方法确实为不同的对象返回不同的整数.(这通常通过将对象的内部地址转换为整数来实现,但Java TM编程语言不需要此实现技术.)
因此它可能与内存地址有关,但它不一定是 - 并且你绝对不应该假设它与内存有关.
你用哈希码做什么都不应该关心这一点.您应该从哈希码中推断出的唯一内容是:
| 归档时间: |
|
| 查看次数: |
3094 次 |
| 最近记录: |