ガーベッジコレクションをわかりやすく解説!!

  • 2021年1月27日
  • 2021年2月2日
  • Java

Javaで開発をしているとガーベッジコレクション という言葉を聞いたことはあるけど、実際どういうものかわからなかったので、 勉強した内容を解説して行こうと思います。 ガーベッジコレクションを説明するにあたり、事前知識も解説しているので、 他の説明は不要という方は目次の4.のみ参照してください。

  1. メモリとは何か
  2. Javaはどうやって動作しているか
  3. ガーベッジコレクタとはなにか
  4. ガーベッジコレクションとはなにか
  5. コンパクションとはなにか
  6. 終わりに

1.メモリとは何か

メモリとはパソコン上で動作する作業領域(一時領域)のことです。
イメージとしては自分が作業する作業机だと思ってもらえれば大丈夫です。
メモリでは一つの作業だけでなく複数の作業が実行できます。
机の上にパソコン置いて、飲み物置いて、ノート置いてといったように
いくつもものを置いておける空間です。
ただ机と同じように多くのものを置いた状態だと空間がなくなってしまいます。
Javaではこの事象を「OutOfMemory」と呼びます。(ここの部分は参考まで)

2.Javaはどうやって動作しているか

Javaはクラスなどのインスタンスを生成し、メモリ上に展開して動作します。
 ※staticで修飾したクラスなどは対象外ですが、記事の説明では割愛します
一つのメモリ上にいくつもインスタンスを生成することができ、
複数の処理が同時並行で動作することができます。

3.ガーベッジコレクタとは

ガーベッジコレクタとはJavaで用意された、メモリを自動的に整理してくれる機能になります。
Javaではガーベッジコレクタにてメモリの自動管理をしているため、
プログラマが明示的にメモリの解放を記述する必要がありません。
また明示的なメモリの解放をすることもできません。

4.ガーベッジコレクションとは

インスタンスを生成したままだと、メモリに空間がなくなり
インスタンスを生成できず、動作が重たくなるだけでなく、
システム自体が動かなくなってしまいます。
ガーベッジコレクションは使用されなくなった、
インスタンスを探し、見つからなければインスタンスを破棄する、
ガーベッジコレクタの機能になります。
イメージとしては作業机に置いてあるパソコンやノートなど、
作業で使用されなくなったものを片付けてくれる機能です。
片付けた場所は空いた空間としてまた使用できるようになります。

5.コンパクションとは

ガーベッジコレクタのもう一つの機能です。
ガーベッジコレクションにより、空いた空間ができたものの、
整理されていない状態だと、大きな処理を動かすことができません。
細切れで空いた空間を整理することで、大きな空間を確保することを、
コンパクションと言います。

6.終わりに

どうでしょう、少しは参考になったでしょうか?
ガーベッジコレクションのことがわかるようになっていただけたら幸いです。
勉強した内容を記事にすることで、私自身の勉強にもなりました。
自分の勉強とあわせて学んだことを記事にしていこうと思います。

Javaの最新記事8件