Javaのメモリの割り当てとリサイクルはすべて、JVM Garbage Collectionプロセスによって自動的に完了します。 Cとは異なり、Java開発者は、ガベージコレクションを実装するために独自のコードを作成する必要はありません。これは、Javaがすべての人に非常に人気がある多くの機能の1つであり、プログラマーがJavaプログラムをよりよく書くのに役立ちます。
このチュートリアルは、シリーズの最初の部分です。 JDK、JVM、JRE、HotSpotVMなど、基本的な用語が最初に説明されます。次に、JVM構造とJavaヒープメモリ構造を導入します。これらの基本を理解することは、その後のゴミリサイクル知識を理解するために重要です。
重要なJava用語
Javaapi:開発者がJavaアプリケーションを作成するのに役立つ一連のカプセル化ライブラリ。
Java Development Toolkit(JDK):開発者がJavaアプリケーションを作成するのに役立つ一連のツール。 JDKには、Javaアプリケーションをコンパイル、実行、パッケージ、配布、監視するツールが含まれています。
Java Virtual Machine(JVM):JVMは抽象的なコンピューター構造です。 Javaプログラムは、JVMの機能に従って書かれています。 JVMはオペレーティングシステムに固有のものであり、Javaの命令を根本的なシステムで実行する命令に変換できます。 JVMは、Javaのプラットフォームに依存しないことを保証します。
Java Runtime Environment(JRE):JREにはJVM実装とJava APIが含まれています。
Javahotspot仮想マシン
各JVM実装は、ごみ収集メカニズムの実装に異なるアプローチを採用する場合があります。 Sunの買収前、OracleはJrockitJVMを使用し、買収後、HotSpotJVMが使用されました。現在、Oracleには2つのJVM実装があり、2つのJVM実装は一定期間後に1つに統合されます。
HotSpotJVMは、Oracleseプラットフォーム標準の現在のコアコンポーネントの一部です。このGarbage Collectionチュートリアルでは、ホットスポット仮想マシンに基づいたガベージコレクションの原則を理解します。
JVMアーキテクチャ
次の写真は、JVMの主要なコンポーネントをまとめたものです。 JVMアーキテクチャでは、ごみ収集に関連する2つの主要なコンポーネントは、ヒープメモリとガベージコレクターです。ヒープメモリは、実行時にオブジェクトインスタンスを保存するために使用されるメモリデータ領域です。ガベージコレクターもここで動作します。これで、これらのコンポーネントがフレームワークでどのように機能するかがわかりました。
Javaヒープメモリ
ヒープメモリに存在するJVMメモリモデルの役割を理解する必要があります。実行時に、Javaインスタンスはヒープメモリ領域に保存されます。オブジェクトがもはや参照されなくなると、条件はヒープメモリから削除されます。ゴミ収集プロセスでは、これらのオブジェクトがヒープメモリから削除され、メモリスペースがリサイクルされます。ヒープメモリの次の3つの主要な領域:
若い世代
Eden Space(Edenspace、任意のインスタンスがエデンスペースを通ってランタイムメモリエリアに入る)
S0Survivorスペース(S0SurvivorSpace、長い間存在するインスタンスはEdenスペースからS0Survivorスペースに移動します)
S1Survivorスペース(より長い期間存在するインスタンスは、S0SurvivorスペースからS1Survivorスペースに移動します)
古い世代のインスタンスは、S1から終身在職(生涯生成)に促進されます
恒久的な世代には、クラス、方法、その他の詳細に関するメタ情報が含まれています
永久生成スペースは、Java 8機能で削除されています。
要約します
上記は、この記事の全体的な内容がJava Garbage Collectionメカニズムを簡単に紹介するものであり、すべての人に役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!