Существуют большие различия между тем, сколько кучи можно выделить между различными виртуальными машинами Java. Например. Виртуальная машина Sun должна выделить память как отдельный блок от ОС. Это ограничение не существует для Oracle JRockit VM. Это также зависит от ОС - например, Я смог выделить больше кучи для виртуальной машины Sun с использованием Linux, чем это было возможно с Windows XP. Также обратите внимание, что я где-то читал, что проблема исчезает для 64-битных ОС ...
Edit:
Вот запись в блоге о проблемах JVM и пространства кучи Sun в 32-битных ОС Windows.