ホームページ  >  記事  >  Java  >  JavaのGCとは何ですか

JavaのGCとは何ですか

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-11-11 14:40:524172ブラウズ

JavaのGCとは何ですか

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() は優先度が非常に低いスレッドで実行されるため、実行されない可能性があることを示しています。

php 中国語 Web サイト、無料の Java 入門チュートリアル が多数あり、オンラインで学習することを歓迎します。

以上がJavaのGCとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。