1、JDK本身提供了许多查看JVM运行参数,状态的工具,如Jmap,Jstat,VisualVM等,详见:
2、也可以直接在程序中通过RunTime类查看JVM内存信息:
Runtime.getRuntime().maxMemory(); //最大可用内存,对应-Xmx
Runtime.getRuntime().freeMemory(); //当前JVM空闲内存
Runtime.getRuntime().totalMemory(); //当前JVM占用的内存总数,其值相当于当前JVM已使用的内存及freeMemory()的总和
maxMemory():为JVM的最大可用内存,可通过-Xmx设置;totalMemory():为当前JVM占用的内存总数,totalMemory = JVM已使用的内存 + freeMemory 会随着JVM使用内存的增加而增加;freeMemory():为当前JVM空闲内存,因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小,freeMemory() = maxMemory()-totalMemory()+freeMemory();
典型的JVM内存参数配置示例: