オブジェクト指向プログラミング以前の言語
C言語やC++などの以前のプログラミング言語では、不要になったメモリ領域を削除する処理をアプリケーションで明示的に指示する必要がありました。
この時、以下のような不便がありました。
- 誤って別の場所で使われているインスタンスを削除してしまうと、後からそのインスタンスを使うロジックで不正な動作をしてしまう。
- 逆に使われていないインスタンスの削除を忘れると、不要なインスタンスが増えてメモリを圧迫してしまう。
ガベージコレクションの登場
JavaやC#など多くのオブジェクト指向プログラミングでは、このようなインスタンスを削除する処理をシステムが自動的に実行する仕組みが採用されている。これをガベージコレクションとよぶ。
ガベージコレクションでは、不要になったインスタンスをメモリ上から削除するのは、ガベージコレクタと呼ばれる、システムが用意する専用のプログラムの仕事です。この仕組みにより、間違いやすいインスタンスの削除処理をプログラムが記述しないで済むようになる。