==バックエンドでの作業方法。JVM実装に依存します。JVMでの実際の実装はかなり賢いですが、私は脱線しています。オブジェクトの参照を返しますか?いいえ。参照を保持できません。(a)オブジェクトのマシンアドレスに関連する場合もあれば、1でない場合もあります。オブジェクトの存続期間中、変更しないことが保証されています。呼び出し)、新しいオブジェクトアドレスをIDハッシュコードとして使用できません。オペレータがバックエンドで作業する方法。これは意味がありません。identityHashCode()?これは上記で部分的に説明されています。その他の違いは次のとおりです。オーバーライドされます。メソッドのため、オーバーライドできません。メソッドは、(理論的には)ハッシュとハッシュテーブル以外のものに使用できるオブジェクトの識別子を提供します。(残念ながら、一意の識別子ではありませんが、オブジェクトの存続期間中は決して変更されないことが保証されています。)1-現在の世代のJVMでは、メモリアドレスとはまったく関係ありません。@bestsssの答えを参照してください。2identityHashCode()はそのように機能します(、現在のところアドレスとは何の関係もありません。OK、整列されているので61)既に生成されたものがあるかどうかを確認し、ある場合はそれを返します。オブジェクトヘッダーに場所があると仮定できます。shift-xorアルゴリズム)を生成します。すべてのネイティブスレッドには独自のシードがあるため、情報は共有されません。新しく生成された数値で更新するオブジェクトヘッダーのフィールド。ハッシュコードのオーバーライドに関する残りの返信を見ることができます。javadocがまだアドレスとidentityHashCodeについて何かを述べている場合、誰かがそれを更新する必要があります。3これはほとんど実装固有のものです。個別のオブジェクトに対して個別の整数を返します。(これは通常、オブジェクトの内部アドレスを整数に変換することで実装されますが、この実装手法はJavaTMプログラミング言語では必要ありません。JavaDocから)理論上、これは値が任意に決定され、すべてのオブジェクトでゼロになることさえあることを意味します。実際には、おそらくオブジェクトのアドレスから派生したものです。これには注意する必要があります。JVMは、ガベージコレクション中に適切だと判断した場合にオブジェクトを再配置できるため、メモリアドレスが「単なる」ものになることはありません。グローバルカウンター、元のオブジェクトの場所のハッシュ、または乱数ジェネレーターなどから描画できます。クラスでオーバーライドしない限り、hashCode()をオーバーライドすると実装が呼び出されます。5多数の回答が与えられます上記で、いくつかのポイントを追加する必要があります。