Java String 的 hashCode 值计算为(HashCode ()) :
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
在任何情况下(比如 JVM 版本、供应商等) ,下面的表达式的计算结果是否为 false?
boolean expression = "This is a Java string".hashCode() == 586653468
更新 # 1: 如果你声称答案是“是的,有这样的情况”——那么请给出一个具体的例子,说明什么时候“这是一个 Java 字符串”。HashCode () != 586653468.尽量说得具体一点。
更新 # 2: 我们都知道,依赖 hashCode ()的实现细节通常是不好的。但是,我要特别指出的是 String.hashCode ()——所以请将答案集中在 String.hashCode ()上。HashCode ()在这个问题的上下文中是完全不相关的。