Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のメモリ管理の変更点は何ですか?


ガベージコレクション または単にGCがメモリのコア部分です 管理 Javaで。それは、メモリから死んだオブジェクトをクリーンアップし、そのスペースを再利用する責任があります。 GC 事前定義されたガベージを使用してクリーンアップを実行します コレクター 特定のアルゴリズムを使用します。

以下にリストされているガベージコレクターにはいくつかの重要なタイプがあります

  • シリアルGC: シングルスレッドコレクターであり、データ使用量が少ない小さなアプリケーションに適用されます。コマンドラインオプションを指定することで有効にできます: -XX:+UseSerialGC。
  • パラレルGC: Parallel GCは、複数のスレッドを使用してガベージコレクションプロセスを実行します。これは、スループットコレクターとも呼ばれます。オプションを明示的に指定することで有効にできます: -XX:+UseParallelGC。
  • G1ガービッジファースト: G1(ガベージファースト)はデフォルトのガベージコレクター Java9で マルチプロセッサで実行されるアプリケーション向けに設計できます 大きなメモリスペースを持つマシン。オプションで有効にできます: -XX:+UseG1GC。
  • 同時マークスイープ: アプリケーションの一時停止時間は最小限に抑えられます。オプションを指定して使用できます: -XX:+ UseConcMarkSweepGC Java 9現在 、このGCタイプは非推奨です。

  1. JavaのStackOverflowErrorとOutOfMemoryErrorの違いは何ですか?

    Javaプログラムを実行するたびに、オペレーティングシステムはJVMにメモリを割り当てます。 JVMは、このメモリを2つの部分に分割します。 1つはスタックメモリで、もう1つはヒープメモリです。スタックはメソッドの実行に使用され、ヒープはオブジェクトの格納に使用されます。スタックがいっぱいになると、JVMはjava.lang.StackOverflowErrorをスローし、ヒープがいっぱいになると、JVMはjava.lang.OutOfMemoryErrorをスローします。 StackOverflowError スタックはメソッドの実行に使用されます。メソッド呼び出しごとに、スタックメモ

  2. Javaのヒープメモリと文字列定数プールの違いは何ですか?

    ヒープメモリ ヒープメモリは、すべてのJavaクラスインスタンスと配列のメモリが割り当てられるランタイムデータ領域です。 ヒープはJVMの起動時に作成され、アプリケーションの実行中にサイズが増減する場合があります。 ヒープのサイズは、–XmsVMオプションを使用して指定できます。ヒープは、ガベージコレクション戦略に応じて、固定サイズまたは可変サイズにすることができます。最大ヒープサイズは、–Xmxオプションを使用して設定できます。 デフォルトでは、最大ヒープサイズは64MBに設定されています。 文字列定数プール Stringは、特別なメモリ位置を使用して、StringConsta