Java支持多少数组维度,比如[1][1][1][1]…[1]?

Java支持多少数组维度,比如[1][1][1][1]…[1]?,java,multidimensional-array,Java,Multidimensional Array,像a[1][1][1][1]…[1]这样的Java语言支持多少数组维度? 我可以为一个数组声明无限数量的维度吗?数组维度的数量限制为255 有趣的是,JLS定义的Java编程语言中没有这样的限制,但是您可以从中看到,数组维度存储在1字节中 但是,您的日常发展很难满足这一限制条件。:-) 从 “仅当数组类型描述符表示255或更少时才有效 尺寸。” 你也可以检查一下 JVMS-2有关于数组维度的断言: “4.10 Java虚拟机的限制…虚拟机的数量 数组中的维数受数组大小限制为255 multian

a[1][1][1][1]…[1]
这样的Java语言支持多少数组维度?
我可以为一个数组声明无限数量的维度吗?

数组维度的数量限制为255

有趣的是,JLS定义的Java编程语言中没有这样的限制,但是您可以从中看到,数组维度存储在1字节中

但是,您的日常发展很难满足这一限制条件。:-)

“仅当数组类型描述符表示255或更少时才有效 尺寸。”

你也可以检查一下

JVMS-2有关于数组维度的断言:

“4.10 Java虚拟机的限制…虚拟机的数量 数组中的维数受数组大小限制为255 multianewarray指令的操作码和 对multianewarray、anewarray和newarray施加的约束 第4.8.2节的说明……”

“4.4.1常量类信息结构…数组类型描述符 仅当它表示255个或更少维度时才有效 最后一个断言仅适用于第4.4.1章

但这些章节: 2.7.5完全限定名称 4.2完全限定类和接口名称的内部形式 4.3描述符(4.3.2字段描述符和4.3.3方法描述符)没有说明许多尺寸限制

此外,还包括以下章节: 4.4.6常量名称和类型信息结构 4.5字段 4.6方法是指字段描述符和方法描述符(描述符索引)的定义,也不涉及维度 限制

因此,根据JVMS-2 常数\名称和类型\信息、字段\信息或方法\信息结构可以是 请参阅表示超过255个维度的字段描述符或 具有类似参数的方法描述符descriptor或 返回描述符


有趣的问题:)+1第一次在google上点击“最大数组维度java”可以让您知道数组的维度不能超过实现支持的数组维度数,通常为255。这意味着这个特定的JVM受到这个权利的限制?这个答案中最重要的一点是“在你的日常发展中,你很难满足这种限制。“。如果你接近这个极限,可能有更好的方法来解决这个问题。@Bartdude坦白地说,在你达到3之前应该有更好的方法。除了像矩阵这样的角点情况。即使在这种情况下,你也可以创建更好的数据模型。考虑到一个0维数组,它不可能有256维,我真的很惊讶数组。这是JVM规范。还有Java语言规范,但没有“Java规范”。@ntoskrnl:-谢谢!更新了我的答案!