#. Java には 2 種類のメモリがあります。それぞれスタックとヒープと呼ばれます。
スタックはプログラム メモリ空間であるため、すべての基本型とオブジェクト参照はスタックに格納されます。
ヒープは Java 仮想マシンがオブジェクトを保存する場所であり、オブジェクトを作成すると、Java 仮想マシンはオブジェクトをヒープに置き、作成されたオブジェクトのアドレスをスタックに置きます。
したがって、基本型とオブジェクトへの参照はスタックに格納され、オブジェクトはヒープに格納されます。
#. Java のガベージ コレクション メカニズム
新しいオブジェクトを作成すると、Java によって必要なメモリが割り当てられます。オブジェクトの使用が終了すると、Java のガベージ コレクターがメモリを再利用します。
ガベージ コレクションはスレッドの形式でバックグラウンドで実行され、有用な参照を持たないオブジェクトが見つかると、そのオブジェクトは破棄され、メモリが再利用されます。
ガベージ コレクションは Java 仮想マシン間で実装されますが、通常は同じ手順で行われます。まず、ガベージ コレクタは、実行中のスレッドとロードされたすべてのクラスのスナップショットを取得します。
次に、スレッドに関係するすべてのオブジェクトが最近使用されたものとしてマークされ、関係する可能性のあるすべてのオブジェクトがマークされると、マークされていない残りのオブジェクトは破棄されます。
仮想マシンをサポートするには、不要になったオブジェクトを積極的に削除することをお勧めします。これは、参照を null に設定することで実現できます。
例えば。:
テキスト t = new Test();
t.someAction();
//すべて完了しました
t = null;