Java String의 hashCode 값은 ( String.hashCode () ) 로 계산됩니다 .
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
다음 표현식이 거짓으로 평가되는 환경 (JVM 버전, 공급 업체 등)이 있습니까?
boolean expression = "This is a Java string".hashCode() == 586653468
업데이트 # 1 : 답변이 "예, 그러한 환경이 있습니다"라고 주장하는 경우 "이것은 Java 문자열"입니다. 구체적인 예를 제공하십시오. hashCode ()! = 586653468 가능한 한.
업데이트 # 2 : 우리는 hashCode ()의 구현 세부 사항에 의존하는 것이 일반적으로 나쁘다는 것을 알고 있습니다. 그러나 String.hashCode ()에 대해 구체적으로 이야기하고 있으므로 String.hashCode ()에 집중하십시오. Object.hashCode ()는이 질문과 관련이 없습니다.