JVM ヒープ構造では、ヒープ メモリは世代ごとに管理され、次に若い世代 (Eden、Survivor 0、Survivor 1)、古い世代が続きます。若い世代は新しいオブジェクトの割り当てに使用され、古い世代は長期的なオブジェクトの保存に使用されます。メタスペース (JVM 8 以降) はメタデータの保存に使用されます。実際の例では、プログラムは 2 つのオブジェクトを作成し、ヒープ情報 (合計メモリ、使用可能なメモリ、使用済みメモリ) を出力します。
Java 仮想マシン (JVM) メモリ モデルのヒープは、特別なメモリ領域であり、使用されます。オブジェクトのインスタンスと配列を保存するために使用されます。これは、若い世代と古い世代に分かれた世代別メモリ管理システムです。
若い世代:
古い世代:
メタスペース:
次の Java コードは、ヒープ構造の使用法を示しています。
public class HeapExample { public static void main(String[] args) { // 创建新对象,存储在年轻代 (Eden 空间) Object object1 = new Object(); // 触发新生代垃圾收集,将长期对象晋升到老年代 System.gc(); // 创建另一个对象,存储在老年代 Object object2 = new Object(); // 打印堆信息 printHeapInfo(); } private static void printHeapInfo() { long totalMemory = Runtime.getRuntime().totalMemory(); long freeMemory = Runtime.getRuntime().freeMemory(); System.out.println("Total memory: " + totalMemory); System.out.println("Free memory: " + freeMemory); System.out.println("Used memory: " + (totalMemory - freeMemory)); } }
このコードは 2 つのオブジェクトを作成します。最初のオブジェクトはobject1
は若い世代に保存され、2 番目のオブジェクト object2
は古い世代に保存されます。このコードは、合計メモリ、空きメモリ、使用済みメモリなどのヒープ情報も出力します。
以上がJava 仮想マシンのメモリ モデルのヒープ構造は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。