以jdk8+HotSpot为例
jdk1.7堆内存结构
jdk1.8之后将最初的永久代取消了,由元空间取代
IDEA设置过程:
Run-> Edit Configurations -> Vm options -> -Xms1024m -Xmx1024m -XX:+PrintGCDetails
-Xms 设置初始内存大小,默认为物理内存的1/64
-Xmx 设置最大内存大小,默认为物理内存的1/4
-XX:+PrintGCDetails 输出详细的GC处理日志
public class Dmeo02 {
public static void main(String[] args) {
long maxMemory = Runtime.getRuntime().maxMemory();//返回Java虚拟机试图使用的最大内存量
long totalMemory = Runtime.getRuntime().totalMemory();//返回Java虚拟机中的内存总量
System.out.println("MAX_MEMORY="+maxMemory+"字节, "+maxMemory/(double)(1024*1024)+"MB");
System.out.println("TOTAL_MEMORY="+totalMemory+"字节, "+totalMemory/(double)(1024*1024)+"MB");
}
}