Java プログラマーが JVM のゼロ基礎から高度な戦闘まで理解する必要がある GC ガベージ コレクション
Java プログラマーが JVM のゼロ基礎から高度な戦闘まで理解する必要がある GC ガベージ コレクション
序文
Java プログラマーが JVM のゼロ基礎から高度な戦闘まで理解する必要がある GC ガベージ コレクション
GC ガベージ コレクションの説明
-
なぜガベージコレクションなのか?
- Java 言語の注目すべき機能は、C++ プログラマにとって最も厄介なメモリ管理問題を解決するガベージ コレクション メカニズムの導入です。ガベージ コレクション メカニズムにより、Java のオブジェクトには「スコープ」の概念がなくなり、オブジェクト参照のみが「スコープ」を持ちます。ガベージ コレクションはメモリ リークを効果的に防止し、空きメモリを効果的に使用できます。
-
ガベージコレクションのプロセスは何ですか?
- ここでは参照カウント方法を例に挙げます。おおよその図は次のとおりです。
- ここでは参照カウント方法を例に挙げます。おおよその図は次のとおりです。
-
ガベージ コレクション アルゴリズムを検討するように求められたら、どのように設計しますか?
- どのオブジェクトがリサイクルされ、どのオブジェクトがリサイクルされないかに関する機能要件を満たします。
-
オブジェクトが生きているかどうか
- ヒープ内の各オブジェクト インスタンスには参照カウントがあります。オブジェクトが作成され、オブジェクト インスタンスが変数に割り当てられると、変数の数は 1 に設定されます。他の変数にこのオブジェクトへの参照が割り当てられている場合、カウントは 1 増加します (a = b、b によって参照されるオブジェクト インスタンスのカウンタは +1)。ただし、オブジェクト インスタンスの参照が有効期間を超えた場合、または新しい値が取得されると、オブジェクト インスタンスの参照カウンタが 1 減算されます。参照カウントが 0 のオブジェクト インスタンスはガベージ コレクションの対象になります。オブジェクト インスタンスがガベージ コレクションされると、それが参照するすべてのオブジェクト インスタンスの参照カウンタが 1 ずつ減らされます。
要約する
この記事では、JVMゼロの基礎から高度な実戦まで、Javaプログラマーが理解しておくべきGCガベージコレクションの内容をすべて紹介します今後も更新していきますので、気に入っていただけましたらクリックしてフォローしてくださいJVMシリーズは続いていきます更新される予定です。