Přečti si k tomu něco. Tam nejde o fyzickou kontinuální paměť, ale kontinuální virtuální paměť přiřazenou jádrem procesu. Win32 XP do poloviny plného rozsahu virtuální paměti pro proces mapují jeho dllka, takže místo něco pod 3GB (32bit OS) si to JVMko mohlo namapovat jen něco pod 1.5GB. Tehdy JVM SUNu potřebovalo souvislý blok (prý měli datové struktury na heapu oindexované a potřebovali souvislý blok (samozřejmě virtuální) paměti pro heap).
Jiné implementace JVM to nepotřebovaly a ta oraclovská už dnes asi taky nepotřebuje. V každém případě na 64bit OS s tím problém není žádný, tam je rozsah virtuální paměti dostatečný.