Java数组中的最大维数

出于好奇,你可以在Java中拥有多少个数组维度?

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将多维数组视为数组数组。

概念certificate: http : //www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d.htm

这就是为什么它也可能在Java中使用不规则的数组!

小实验表明,255个维度是最大的。 256导致编译错误;

截图