出于好奇,你可以在Java中拥有多少维数?
答案 0 :(得分:38)
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或更少维度时才有效。”)
答案 1 :(得分:-1)
严格说来
Maximum number of dimensions in a Java array
只能在java中使用一维数组。因为在引擎盖下java将多维数组视为数组数组。
概念证明:http://www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d.htm
这就是为什么它也可能在Java中使用不完整的数组!
答案 2 :(得分:-1)
小实验表明,255个维度是最大的。 256导致编译错误;