Dalam struktur timbunan JVM, ingatan timbunan diurus mengikut generasi, iaitu generasi muda (Eden, Survivor 0, Survivor 1) dan generasi lama. Generasi muda digunakan untuk peruntukan objek baharu, dan generasi lama digunakan untuk penyimpanan objek jangka panjang. Metaspace (JVM 8 dan ke atas) digunakan untuk menyimpan metadata. Dalam contoh praktikal, program mencipta dua objek dan mencetak maklumat timbunan (jumlah memori, ingatan tersedia, memori terpakai).
Timbunan dalam model memori Java Virtual Machine (JVM) ialah kawasan memori khas yang digunakan untuk menyimpan kejadian dan tatasusunan objek. Ia adalah sistem pengurusan ingatan generasi, dibahagikan kepada generasi muda dan generasi lama.
Generasi muda:
Generasi Lama:
Metaspace:
Kod Java berikut menunjukkan penggunaan struktur timbunan:
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)); } }
Kod ini mencipta dua objek, objek pertama object1
存储在年轻代,而第二个对象 object2
disimpan dalam generasi lama. Kod ini juga mencetak maklumat timbunan termasuk jumlah memori, memori percuma dan memori terpakai.
Atas ialah kandungan terperinci Apakah struktur timbunan dalam model memori mesin maya Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!