我正在对我的代码执行以下操作:
double[][] temp=new double[0][2];
程序将运行,没有运行时异常。当我像这样 temp.length
那样获取 temp 的长度时,它返回 0;当我尝试像这样 temp[0].length
那样访问内部数组的长度时,它返回总是抛出ArrayIndexOutOfBoundsException
。 (这只是一个测试。)
现在我想知道,Java是否创建了一个长度为0的数组,同时在一个长度为0的数组中创建了一个长度为2的内部数组?
- 这种声明对内存管理有影响吗?
- 它会使编码和运行代码变得复杂吗?
- Java 真的允许这种声明吗?
- 他们在什么意义上允许这种声明,或者他们只是忽略了这种情况?
- 如果他们允许这种声明,它是否还有一些特殊用途?
我只是在探索做这种声明的可能性,并一直在质疑自己这是否真的被允许。
非常感谢您的意见。
最佳答案
相当于
double[][] temp = new double[0][]; // a zero length array of double[]
for(int d=0; d<0; d++)
temp[d] = new double[2]; // whose each element is a new double[2]
当然,循环不会执行,因此“内部数组”不会浪费
关于Java double[][] 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5132127/