JVM のゼロ基礎から高度な戦闘まで、Java プログラマーが知っておくべきオブジェクト作成の基本的な手順の詳細

JVM のゼロ基礎から高度な戦闘まで、Java プログラマーが知っておくべきオブジェクト作成の基本的な手順の詳細

JVM のゼロ基礎から高度な戦闘まで、Java プログラマーが知っておくべきオブジェクト作成の基本的な手順の詳細



序文

JVM のゼロ基礎から高度な戦闘まで、Java プログラマーが知っておくべきオブジェクト作成の基本的な手順の詳細


Java オブジェクト作成のプロセス手順は何ですか?

ここに画像の説明を挿入

  • 仮想マシンが新しい命令を検出すると、まず、対応するクラスが定数プール内のクラスのシンボル参照を見つけられるかどうかを確認します。
  • このクラスがロード、解析、および初期化されているかどうかを確認します
    • この新しく生まれたオブジェクトに対して Java ヒープにメモリ領域を割り当てます。Java ヒープがメモリ領域を割り当てるには、主に 2 つの方法があります。
    • ポインタの衝突
      • メモリ空間の割り当てには、メモリの一部を開いてポインタを移動するという 2 つのステップが含まれます
      • 同時実行の問題は、非アトミックなステップで発生する可能性があるため、Java 仮想マシンは、更新操作のアトミック性を確保するために、失敗した再試行で CAS を使用します。
    • フリーリスト
      • メモリ領域の割り当てには、メモリの一部を開くことと空きリストの変更という 2 つの手順が含まれます。
      • 同時実行の問題は、非アトミックなステップで発生する可能性があるため、Java 仮想マシンは、更新操作のアトミック性を確保するために、失敗した再試行で CAS を使用します。
    • 割り当てられたメモリ空間をゼロ値に初期化します。
    • オブジェクトヘッダー関連データの設定
      • GCの世代年齢
      • オブジェクトのハッシュコード hashCode
      • メタデータ情報
    • オブジェクトメソッドを実行する

要約する

この記事では、JVMのゼロ基礎から高度な実戦まで、Javaプログラマが知っておくべきオブジェクト作成の基礎手順を詳しく紹介します。今後も更新していきます。気に入っていただけましたら、クリックしてフォローしてください。JVMシリーズ引き続き更新されます。

おすすめ

転載: blog.csdn.net/weixin_42397937/article/details/131156225