Java String の hashCode 値は ( String.hashCode() ) として計算されます。
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
次の式が false と評価される状況 (JVM のバージョン、ベンダーなど) はありますか?
boolean expression = "This is a Java string".hashCode() == 586653468
更新 #1:答えが「はい、そのような状況がある」と主張する場合は、「これは Java 文字列です」.hashCode() != 586653468 の具体例を挙げてください。具体的/具体的になるようにしてください。できるだけ。
更新 #2: hashCode() の実装の詳細に依存することは一般的に悪いことです。ただし、私は特に String.hashCode() について話しているので、答えは String.hashCode() に集中してください。Object.hashCode() は、この質問のコンテキストではまったく関係ありません。