Максимальный размер массива ограничен 32-битным значением со знаком. то есть 2 ^ 31-1 или около 2 миллиардов, большинство матриц реализованы в виде двумерных массивов, поэтому максимальный размер составляет 2 миллиарда * 2 миллиарда. Вы можете использовать float или double, но если у вас будет матрица, которая будет больше, ваша ошибка округления будет огромной. ~ 2 ^ 62 бита, что больше точности двойного, поэтому вам придется использовать BigDecimal в любом случае. Скажем, каждая ячейка занимает около 128 (2 ^ 7) байтов памяти, вам нужно всего 2 ^ 69 байтов или 512 Exa-байтов (32-кратный теоретический предел памяти, который может обрабатывать 64-битный процессор)