這個(gè)要看GC調(diào)優(yōu)。
JVM的堆的內(nèi)存, 是通過(guò)上面兩個(gè)參數(shù)控制的
-Xms 最小堆的大小, 也就是當(dāng)你的虛擬機(jī)啟動(dòng)后, 就會(huì)分配這么大的堆內(nèi)存給你
-Xmx 是最大堆的大小
當(dāng)最小堆占滿后,會(huì)嘗試進(jìn)行GC,如果GC之后還不能得到足夠的內(nèi)存(GC未必會(huì)收集到所有當(dāng)前可用內(nèi)存),分配新的對(duì)象,那么就會(huì)擴(kuò)展堆,如果-Xmx設(shè)置的太小,擴(kuò)展堆就會(huì)失敗,導(dǎo)致OutOfMemoryError錯(cuò)誤提示。
實(shí)際上,細(xì)節(jié)不止于此, 堆還會(huì)被分成幾個(gè)不同的區(qū)域,分別應(yīng)用不同的GC算法
最好看看 Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine
在Sun的網(wǎng)站上面就有,Google一下。