Ziy*_*ang 6 java arrays initialization
int[][] a = new int[0][5];
为什么上面的代码在java中有效?
这个2d阵列几乎没用,因为第一个维度是ZERO.从逻辑上讲,如果第一个维度为0,则第二个维度不应大于0.
我知道我们可以启动1d空数组.
Mak*_*oto 6
通过JLS,表示大小为零的数组表达式是有效的 - 它只是一个表达式 - 因此您可以合法地声明一个零基数的n维数组.
JLS词法分析器检查的唯一内容(从Java 8开始)是表达式是否计算为零:
接下来,检查维度表达式的值.如果任何DimExpr表达式的值小于零,则抛出NegativeArraySizeException.
这没有说明它的用处,因为我相信你知道,任何索引到这个数组的尝试都会产生一个ArrayIndexOutOfBoundsException因为你的索引位置从零开始.
ArrayIndexOutOfBoundsException
归档时间:
8 年,5 月 前
查看次数:
264 次
最近记录: