Java オブジェクトの作成プロセス:
クラスの読み込みチェック --> メモリの割り当て --> ゼロ値の初期化 --> オブジェクト ヘッダーの設定-->init メソッドの実行
詳細は次のとおりです:
1. クラス読み込みチェック
仮想マシンが新しい命令を検出すると、最初にこの命令のパラメータをチェックします。定数プール内のクラスのシンボリック参照を見つけて、このシンボリック参照で表されるクラスが ji によってロード、解析、および初期化されているかどうかを確認できますか。そうでない場合は、クラスのロード処理が最初に実行されます。
(ビデオ チュートリアルの推奨: java ビデオ )
2. メモリの割り当て
2 つの方法があります:
(1)ポインタの衝突: Java ヒープ内のメモリが規則的で、一方が使用済みメモリ、もう一方が空きメモリであると仮定します。境界点を示すポインタが中央にあります。割り当てられたメモリは、そのポインタを次の位置に移動します。自由側 オブジェクトのサイズに等しい距離。
(2) 空きリスト: Java ヒープ内のメモリが規則的でない場合、仮想マシンは利用可能なメモリ ブロックを記録するリストを維持し、そのリストから十分な大きさの領域を見つけて割り当てなければなりません。を割り当てるときにオブジェクトに追加し、リストのレコードを更新します。
3. ゼロ値の初期化
割り当てられたメモリ空間をゼロ値に初期化する TLAB を使用する場合、TLAB の割り当て時にゼロ値に初期化されます。
4. オブジェクトヘッダの設定
主にクラスのメタデータ情報、オブジェクトのハッシュコード、オブジェクトのGC生成年齢などを設定します。
5. initメソッドの初期化を実行します。
推奨チュートリアル: Java 開発の入門
以上がJavaオブジェクトの作成プロセスとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。