GC はガベージ コレクション (Gabage Collection) を意味します。メモリ処理はプログラマが問題を起こしやすい場所です。メモリのリサイクルを忘れたり間違ったりすると、プログラムやシステムが不安定になったり、クラッシュする可能性があります。
Java が提供する GC 関数は、オブジェクトがスコープを超えているかどうかを自動的に検出して、メモリを自動的に再利用するという目的を達成できます。言語がリリースを提供していない 割り当てられたメモリの操作方法を表示します。(推奨学習:java コース)
GC はガベージ コレクターです。 Java プログラマーは、ガベージ コレクターがメモリ管理を自動的に処理するため、メモリ管理について心配する必要はありません。ガベージ コレクションを要求するには、次のメソッドのいずれかを呼び出すことができます:
System.gc() Runtime.getRuntime().gc()
Java は C から開発されています。
C の面倒でエラーが発生しやすいものの一部を放棄します。その一つがこのGCです。
C/C プログラムを作成するとき、プログラマは変数を定義します。これは、値を格納するためにメモリ内に対応するスペースを開くことを意味します。メモリがどんなに大きくても限界があるため、プログラムで特定の変数を使用する必要がなくなった場合は、このメモリ空間リソースを解放して、他の変数が使用できるようにする必要があります。
C/C では、無駄な変数メモリ空間を解放するという問題はプログラマ自身が解決する必要があります。つまり、プログラマは変数が役に立たないと考えた場合、その変数が占有しているメモリを解放するコードを作成する必要があります。このようにして、メモリ リークとリソースの無駄を最大限に回避できます。
しかし、これは明らかに非常に面倒です。プログラムが比較的大きく、変数が多い場合、プログラマはメモリの解放を忘れたり、解放すべきでないときにメモリを解放したりすることがよくあります。
そして、開発の観点から見ると、メモリの解放はプログラマが気にすべきことではありません。プログラマがしなければならないことは、メモリの割り当てと解放に多くのエネルギーを費やすのではなく、必要なプログラム機能を実装することであるべきです。
Java の GC を使用すると、プログラマはメモリ領域を手動で解放する必要がありません。 Java 仮想マシンは、メモリ リソースが不足していることを検出すると、不要な変数によって占有されているメモリ領域を自動的にクリーンアップします。もちろん、必要に応じて、プログラマは Java プログラムで System.gc() を明示的に使用して、即時メモリのクリーンアップを強制できます。
明示的な宣言ではヒープ メモリのフル スキャン、つまりフル GC を実行するため、すべてのアクティビティを停止する必要があります (Stop The World Collection)。あなたのアプリケーションはこれに耐えられますか?
これは、System.gc() の呼び出しが仮想マシンへの単なる提案であり、System.gc() が非常に低い優先順位のスレッドで実行されるため、実行されない可能性があることを示しています。
以上がJava GCとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。