これまでの研究で、オブジェクトヘッドについて誰もが聞いたことがあるはずです。オブジェクト ヘッダーを使用して情報を保存できることはわかっていますが、多くの人は特定のストレージ タイプでそれを試したことがないかもしれません。データを格納するタイプとオブジェクト自体のポインタ型の2種類に分かれます。後者は比較的皆さんとの接点が少ないので、具体的な内容は以下の記事で別途紹介します。
1. オブジェクトヘッダーは主に 2 つの情報を格納するために使用されます。
オブジェクト自体の操作に関するデータを保存する
タイプポインタ
2. オブジェクト自体が実行されているときのデータには、主にハッシュ コード、GC 生成経過時間、ロック ステータス フラグ、スレッドが保持するロック、偏ったスレッド ID、偏ったタイムスタンプなどが含まれます。データのこの部分の長さは、32 ビットおよび 64 ビットの仮想マシンではそれぞれ 32 ビットと 64 ビットです (圧縮ポインターは有効になっていません)。
型ポインタを使用して、このオブジェクトがどのクラスのインスタンスであるかを判断できますが、仮想マシンの実装はオブジェクトの型ポインタを保持する必要はありません。
上記は、Java オブジェクト ヘッダーの 2 つのストレージ タイプです。これを初めて使用する友人は、授業後にこれら 2 つの異なるストレージで実際の実験を行うことができます。