Java字符串的hashCode值计算为(String.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()上。在此问题的上下文中,Object.hashCode()完全不相关。