Java メモリ管理: 若い世代、古い世代、永続的な世代について理解する
Java のメモリ管理用語では、ヒープは 3 つの主要な世代に分割されます: 若者、老人、永続的。各世代は特定の目的を果たし、他の世代と動的に対話します。
若い世代
若い世代は、新しいオブジェクトが最初に割り当てられるヒープの領域です。さらに、エデンとサバイバーの 2 つのサブスペースに分かれています。ほとんどの割り当てはエデン空間で発生します。 Eden スペース内のオブジェクトが 1 つ以上のガベージ コレクション サイクルを乗り越えると、そのオブジェクトは Survivor スペースに昇格します。
旧世代
旧世代はプライマリ ストレージ領域です。寿命の長いオブジェクトの場合。 Survivor スペースで複数のガベージ コレクションを経て生き残ったオブジェクトは、古い世代に昇格されます。古い世代は、若い世代に収まらない大きなオブジェクトを保存する責任もあります。
永続世代 (非ヒープ)
その名前に反して、永続世代は、生成は、Oracle の JVM のヒープの一部ではありません。これは、主にクラス定義、メタデータ、共有定数データ用に予約されている別個の専用スペースです。 Java 6 以前では、インターンされた文字列も永続世代に格納されていましたが、これは Java 7 で変更されました。
相互作用と関係
3 つの世代は次のように相互作用します。 :
以上がJava メモリ管理では、若い世代、古い世代、永続的な世代がどのように連携するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。