In the JVM heap structure, the heap memory is managed by generation, followed by the young generation (Eden, Survivor 0, Survivor 1) and the old generation. The young generation is used for new object allocation, and the old generation is used for long-term object storage. Metaspace (JVM 8 and above) is used to store metadata. In the practical example, the program creates two objects and prints out the heap information (total memory, available memory, used memory).
The heap in the Java virtual machine (JVM) memory model is a special memory area, used Used to store object instances and arrays. It is a generational memory management system, divided into young generation and old generation.
Young generation:
Old Generation:
Metaspace:
The following Java code shows the usage of the heap structure:
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)); } }
This code creates two objects, the first of whichobject1
is stored in the young generation, while the second object object2
is stored in the old generation. The code also prints heap information including total memory, free memory, and used memory.
The above is the detailed content of What is the heap structure in the Java virtual machine memory model?. For more information, please follow other related articles on the PHP Chinese website!