Язык Java не ограничивает количество измерений, но спецификация Java VM ограничивает количество измерений до 255.
Например , следующий код не скомпилируется:
class Main {
public static void main(String[] args) {
final int[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][] x;
}
}
с ошибкой:
1.java:18: error: array type has too many dimensions
[][][][][][][][][][][][][][][][] x;
^
1 error
(Ссылка: https://docs.oracle.com/javase/ specs / jvms / se8 / html / jvms-4.html # jvms-4.4.1 "Дескриптор типа массива действителен только в том случае, если он представляет 255 или меньше измерений.")
Строго говоря о
Maximum number of dimensions in a Java array
, в java возможен только один размерный массив. потому что под капотом java обрабатывает многомерные массивы как массивы массивов.
Доказательство концепции: http://www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d. htm
, поэтому его возможно также иметь оборванные массивы на Java!
Небольшой эксперимент показывает, что 255 измерений являются максимальными. 256 вызывает ошибку компиляции;