Ответ 1
Самый простой способ узнать - попробовать и посмотреть.
Edit: На этот вопрос есть как минимум два ответа. Вероятно, на 64-битной системе, как уже упоминалось, ваше приложение может расти и расти в памяти и начинать рушиться. В 32-битной системе история немного отличается, потому что os не может дать вам столько кучи. Например, если я запустил приложение в Windows XP с 32-битным java с параметром командной строки -Xmx2000m, он умрет с сообщением, аналогичным следующему:
Недопустимый максимальный размер кучи: -Xmx2000m
Указанный размер превышает максимально отображаемый размер.
Не удалось создать виртуальную машину Java.
В Linux с 32-битным java я получаю следующее: -Xmx3000m:
Не удалось создать виртуальную машину Java.
Ошибка при инициализации VM
Не удалось зарезервировать достаточно места для кучи объектов
В Linux с 32-битным java я получаю следующее: -Xmx6000m
Недопустимый максимальный размер кучи: -Xmx6000m
Указанный размер превышает максимально отображаемый размер.
Не удалось создать виртуальную машину Java.
Попробовав это с помощью 64-битной Java, JVM позволяет вам выделять больше памяти, чем есть физическая RAM, но если вы запрашиваете чрезвычайно большой объем памяти, jvm снова завершится с ошибкой.