В документации для класса Java Runtime указано:
Возвращает максимальный объем памяти, который будет пытаться использовать виртуальная машина Java. Если нет встроенного предела, тогда будет возвращено значение Long.MAX_VALUE.
Что означает "нет присущего предела"? Разве не всегда будет максимальный размер кучи?
Все это означает, что спецификация не требует наличия явного верхнего предела. Это должно было отразиться на API, иначе API maxMemory()
был бы несовместим со спецификацией.
native