Java double [] []问题

Ric*_*dor 0 java

我正在对我的代码执行以下操作:

double[][] temp=new double[0][2];
Run Code Online (Sandbox Code Playgroud)

程序将在没有运行时异常的情况下运行.当我得到像这样的临时长度temp.length它返回0并且当我尝试访问内部数组的长度时,temp[0].length它总是抛出一个ArrayIndexOutOfBoundsException.(那只是一个考验.)

现在我想知道,Java确实创建了一个长度为0的数组,同时在一个长度为0的数组中创建了一个长度为2的内部数组?

  1. 这种声明对内存管理有影响吗?
  2. 它会在编码和运行代码时产生复杂性吗?
  3. Java真的允许这种声明吗?
  4. 他们在什么意义上允许这种声明,或者只是忽略了这种情况?
  5. 如果他们允许这个声明,它还有一些特殊用途吗?

我只是在探索做这种声明的可能性,并且一直质疑自己是否真的允许这样做.

非常感谢您的意见.

irr*_*ble 5

它相当于

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]
Run Code Online (Sandbox Code Playgroud)

当然循环没有被执行,所以没有"内部阵列"的浪费