[解決済み] Javaヒープ用語:若い世代、古い世代、永久世代?
2022-03-17 07:58:24
質問
の概念を理解しようとしています。 ヤング , 古い と 永久世代 は、Javaのヒープ用語で、より具体的には3世代間の相互作用です。
私の疑問は
- ヤングジェネレーションとは何ですか?
- オールドジェネレーションとは何ですか?
- パーマネント・ジェネレーションとは何ですか?
- 3世代はどのように相互作用/関連しているのでしょうか?
どのように解決するのか?
これはよくある誤解のような気がします。OracleのJVMでは、永久世代はヒープの一部ではありません。それは、クラス定義と関連するデータのための独立した空間です。Java 6以前では、インターンされた文字列もパーマネント世代に格納されていた。Java 7では、インターンされた文字列はメイン・オブジェクト・ヒープに格納されます。
に関する良い記事をご紹介します。 永久保存版 .
オラクルの各スペースに付けられた説明文が好きです。 JConsoleのガイド :
HotSpot Java VMの場合、メモリ シリアルガベージコレクションのためのプール は以下の通りです。
- エデンスペース(ヒープ)。メモリが最初に割り当てられるプール は、ほとんどのオブジェクトで使用されます。
- 生存者空間(ヒープ)。生存しているオブジェクトを含むプール。 のガベージコレクションは、エデン の空間です。
- テニュア世代(ヒープ)。存在するオブジェクトを含むプール 生存者空間におけるしばらくの間。
- Permanent Generation (非ヒープ)。すべての反射的な 仮想マシン自体のデータ。 クラスやメソッドのオブジェクトなど。とは クラスデータ共有を使用するJava VM。 この世代は read-onlyとread-writeの領域があります。
- コードキャッシュ(非ヒープ)。HotSpot Java VMには、コードキャッシュも含まれています。 のために使用されるメモリが含まれています。 のコンパイルと保存を行います。 コードになります。
Javaは世代別ガベージコレクションを採用しています。つまり、あるクラスのインスタンスであるオブジェクトfooがあったとして、それがガベージコレクションイベントに生き残るほど(まだそれへの参照がある場合)、それはさらに昇進していきます。それは若い世代(それ自体が複数の空間-エデンとサバイバー-に分かれている)から始まり、十分に長く生き残れば、最終的には終身世代に行き着くことになる。
関連
-
java の例外が発生しました java
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] DTO、VO、POJO、JavaBeansの違い?
-
[解決済み] ConcurrentHashMapとCollections.synchronizedMap(Map)の違いは何ですか?
-
[解決済み] java.lang.OutOfMemoryError" の対処法。Java heap space "エラーの対処方法を教えてください。
-
[解決済み】サーブレットはどのように動作するのですか?インスタンス化、セッション、共有変数とマルチスレッド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
Spring Boot による HTTPS アクセスの設定
-
Dateが型に解決できない問題を解決する
-
をインスタンス化することができません。
-
Spring boot runs with Error creating bean with name 'entityManagerFactory' defined in class path resource
-
javaコンパイル時のエラー:不正な文字 '\ufeff' に対する解決策です。
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策
-
コミットには何も追加されないが、未追跡のファイルが存在し、gitで未追跡のファイルに対する完璧な解決策
-
[解決済み] Javaでは、静的メソッドと静的変数はどこに格納されているのですか?