Wie stellt die JVM sicher, dass sich System.identityHashCode () niemals ändert?

In der Regel die Standardimplementierung vonObject.hashCode() ist eine Funktion der zugewiesenen Adresse des Objekts im Speicher (obwohl dies nicht von derJLS). Warum wird der Wert von zurückgegeben, wenn die VM Objekte im Arbeitsspeicher überbrückt?System.identityHashCode() nie während der Lebensdauer des Objekts ändern?

Wenn es sich um eine "einmalige" Berechnung handelt (das Objekt isthashCode wird einmal berechnet und in der Objektkopfzeile oder so etwas versteckt), bedeutet dies, dass es möglich ist, dass zwei Objekte dasselbe habenidentityHashCode (wenn sie zufällig zuerst an derselben Adresse im Speicher zugewiesen werden)?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage