可以用命令直接查詢:
java -XX:+PrintFlagsFinal -version | grep HeapSize
或者使用java代碼:
Runtime.getRuntime().maxMemory();
官方文檔:(建議點開查看)
1. client模式
初始堆大小:
物理內存的1/64,但最小是8MB。
最大堆大小:
在物理內存達到192MB之前,JVM最大堆大小爲物理內存的一半;
在物理內存大於192MB,在到達1GB之前,JVM最大堆大小爲物理內存的1/4;
大於1GB的物理內存,最大堆大小爲256M。
2. server模式:
總體與Client相同,但是最大堆大小可以更大;
最大堆大小:
如果實際內存大於1G,最大堆大小爲內存的1/4;在32位JVM下,如果物理內存在4G或更高,最大堆大小可以提升至1GB,如果是在64位JVM下,如果物理內存在128GB或更高,最大堆大小可以提升至32GB。
比如:64位機器4G內存,server模式下默認啓動JVM,初始堆爲64M,最大堆爲1G;