JVM のゼロ基礎から高度な戦闘まで、Java プログラマが知っておくべきオブジェクト アクセスと配置方法

JVM のゼロ基礎から高度な戦闘まで、Java プログラマが知っておくべきオブジェクト アクセス方法

JVM のゼロ基礎から高度な戦闘まで、Java プログラマが知っておくべきオブジェクト アクセス方法



序文

JVM のゼロ基礎から高度な戦闘まで、Java プログラマが知っておくべきオブジェクト アクセスと配置方法


JAVAオブジェクトアクセスロケーションメソッド

  • ヒープ上にオブジェクト インスタンスを作成するときは、仮想マシン スタック内の参照型データを通じてヒープ上のオブジェクトを操作する必要があります。現在、主流のアクセス方法は 2 つあります (HotSpot 仮想マシンは 2 番目のアクセス方法を使用します)
    • オブジェクトにはハンドルを使用してアクセスします。すなわち、オブジェクトハンドルのアドレスがリファレンスに格納され、ハンドルにはオブジェクトインスタンスデータと型データの特定のアドレス情報が含まれており、二次ポインタに相当する。
    • オブジェクトへの直接ポインター アクセス。つまり、オブジェクト アドレスは、第 1 レベルのポインタに相当する参照に格納されます。
  • 比較した
    • ガベージ コレクション分析: 方法 1️⃣ガベージ コレクションでオブジェクトを移動する場合、参照に格納されているアドレスは安定したアドレスなので変更する必要はなく、オブジェクト ハンドルのアドレスのみを変更する必要があります。方法 2️⃣参照に格納されているアドレスは必要ですガベージ コレクション中に変更される必要があります。
    • アクセス効率の分析では、方法 2 の方が方法 1 よりも優れています。方法 2 はポインタの位置決めを 1 回だけ実行するため、時間とオーバーヘッドが節約されます。また、これは HotSpot で採用されている実装方法でもあります。

要約する

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

Guess you like

Origin blog.csdn.net/weixin_42397937/article/details/131156464