Массивы индексируются неотрицательным целым числом, поэтому максимальный размер массива, к которому вы можете получить доступ, будет Integer.MAX_VALUE
. Другое дело, насколько большой массив вы можете создать. Это зависит от максимальной доступной памяти для вашего JVM
и типа содержимого массива. Каждый элемент массива имеет свой размер, пример. byte = 1 byte
, int = 4 bytes
, Object reference = 4 bytes (on a 32 bit system)
Таким образом, если на вашем компьютере доступно 1 MB
памяти, вы можете выделить массив byte[1024 * 1024]
или Object[256 * 1024]
.
Ответ на ваш вопрос - Вы можете выделить массив размера (максимально доступная память / размер элемента массива).
Резюме - Теоретически максимальный размер массива будет Integer.MAX_VALUE
. Практически это зависит от того, сколько памяти у вас есть JVM
и сколько уже выделено другим объектам.