Почему невозможно создать массив с максимальным размером int?
int i = 2147483647;
int[] array = new int[i];
Я нашел это объяснение:
Доступ к массивам Java осуществляется через 32-битные ints, в результате чего максимальный теоретический размер массива составляет 2147483647 элементов.
Но, как вы видите, мой код не работает. Также невозможно создать массив с размером
new int[Integer.MAX_VALUE - 5];
Технические данные
- 64-бит HotSpot JVM
- OSX 10.10.4
PS
И почему -5
на самом деле?