実際には、理解するにはハッシュ コードの使用法を理解する必要があります。
オブジェクトの作成時ではなく、 hashCode() が呼び出されたときにハッシュコードが生成されます。
オブジェクトごとに、java.lang.Object のハッシュ コードのデフォルトの実装をオーバーライドしたくない場合があります。内部でハッシュアルゴリズムを使用しているすべてのクラスに実際に必要です。例: HashMap、HashSet など。これらのメソッドの内部実装を調べてみると、ハッシュ コードなどの使用法がわかります。
java.util.HashMap からのコード スニペット:
public V get(Object key) {
if (key == null)
return getForNullKey();
int hash = hash(key.hashCode());
for (Entry<K,V> e = table[indexFor(hash, table.length)];
e != null;
e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k)))
return e.value;
}
return null;
}
ご覧のとおり、データ構造から適切なオブジェクトを取得するために使用されます。
オブジェクトハッシュコードのコメントを確認すると、これについても明確に言及されています
* Returns a hash code value for the object. This method is
* supported for the benefit of hashtables such as those provided by
* <code>java.util.Hashtable</code>.