ガベージコレクタとは?
ガベージコレクタの説明
ガベージコレクタとは、プログラムが使用しなくなったメモリ領域を検出し解放します。
例えば、int型のインスタンス変数を宣言したとすると、int型のデータサイズである
32ビット分のメモリ領域が使用されることになります。
しかし、このオブジェクトが使用されなくなると、ガベージコレクタによってこのオブジェクトが
使用していたメモリ領域を解放します。
オブジェクトをガベージコレクタの対象にする。
オブジェクトがどこからか参照されている間は、ガベージコレクタの対象にはなりません。
オブジェクトへの参照を取り除く方法は2つあります。
nullを代入
プログラムの中で明示的に「この変数はオブジェクトを参照しない」ということを表現する
nullを代入します。これによりガベージコレクタの対象になります。
Employee e1 = new Employee(); //a1変数は、Employeeオブジェとを参照している
e1 = null; //nullを代入することで、「その変数は何も参照していない」という意味になる。
参照変数を他のオブジェクトに割り当てる
オブジェクトを参照している変数に、新たなオブジェクトを割り当てたことで、元のオブジェクトが
どこからも参照されなくなったら、その元のオブジェクトはガベージコレクタの対象になる。
Employee e1 = new Employee(); //a1変数は、Employeeオブジェクトを参照している
e1 = new Employee(); //a1変数は新しいオブジェクトを参照する。その結果、最初のオブジェクトはガベージコレクタの対象になる。
まとめ
・ガベージコレクタとは、プログラムが使用しなくなったメモリ領域を検出し解放する動作を指す。
・変数にnullを代入すると、ガベージコレクタの対象になる。
・参照変数を他のオブジェクトに割り当てると、ガベージコレクタの対象となる。