這個要看GC調優。
JVM的堆的內存, 是通過上面兩個參數控制的
-Xms 最小堆的大小, 也就是當你的虛擬機啟動后, 就會分配這么大的堆內存給你
-Xmx 是最大堆的大小
當最小堆占滿后,會嘗試進行GC,如果GC之后還不能得到足夠的內存(GC未必會收集到所有當前可用內存),分配新的對象,那么就會擴展堆,如果-Xmx設置的太小,擴展堆就會失敗,導致OutOfMemoryError錯誤提示。
實際上,細節不止于此, 堆還會被分成幾個不同的區域,分別應用不同的GC算法
最好看看 Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine
在Sun的網站上面就有,Google一下。