作成プロセス:
新しい命令を受信した後、
参照クラスがクラスローディング機構(ローディング機構は、メモリサイズに基づいて決定することができる)を実行し、表現構文解析され、初期化され、そうでない場合はロードされているかどうかをチェックします。
2.メモリを割り当てます
2つの配布
ポインタの衝突(ポインタをバンプ)
- ポインタ衝突手段:通常のJavaヒープ(すなわち、関数のような、仕上げガベージコレクタと圧縮アルゴリズムを使用:他のコレクターコンパクトプロセスと、シリアルParNew)の場合には、
オブジェクトを割り当てるためには、アイドルメモリ空間へのポインタの移動、物体の大きさに等しい移動距離です。
フリーリスト(フリー・リスト)
- フリー・リストの意味:場合、(等マークスイープコレクタアルゴリズムCMSに基づくような圧縮アルゴリズムのハウスキーピング機能を使用せず、すなわち、ガベージコレクタ)Javaヒープは、不規則な
オブジェクト用のメモリを割り当てる際にメモリを割り当てるために十分な大きさのスペースを見つけるように、どのくらいの大きさ、作品を記録するテーブルが空である持っている必要があります。
スレッド安全性の問題:
Javaランタイムので、操作のオブジェクトを作成することは非常に頻繁にあります
2つの方法で競合操作を避けるために、JVMのスレッド:
分配同期メモリ動作;
第二に、各スレッドJavaで事前に割り当てられたヒープメモリ、スレッドは、対応するTLABに割り当てられたオブジェクトを作成するためにメモリを割り当てる必要がスレッドローカル割当バッファ(ローカル割り当てバッファ、TLABスレッド)と呼ばれるメモリのこの小片の小片TLABがなくなったときに、ロックを同期する、新しいTLABを割り当てます。
TLABかどうか、-XXによってJVM:+/- UseTLABパラメータセット。
このオブジェクトは、このようなメタデータなどの情報を見つける方法を、クラスのインスタンスである3セット、ハッシュオブジェクトは、GCは、サブ情報世代の年齢を対象とします。この情報は、オブジェクトヘッダオブジェクトに格納されています。