Hash code 有5中不同的生成策略:
1) 返回一个Park-Miller伪随机数生成器生成的随机数。
2) 返回将对象的内存地址做移位运算后与一个随机数进行异或得到结果。
3) 返回1。
4) 返回一个自增序列的当前值。
5) 返回当前对象的内存地址。
6) 返回由当前线程有关的一个随机数和三个确定值,经Marsaglia’s xorshift scheme随机数算法得到的一个随机数。
所以,跟内存相关的生成方式只有1种,只是JVM 默认选择6)。
-XX:+UnlockExperimentalVMOptions
-XX:hashCode=4