Java double[][] 问题

标签 java

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

double[][] temp=new double[0][2];

程序将运行,没有运行时异常。当我像这样 temp.length 那样获取 temp 的长度时,它返回 0;当我尝试像这样 temp[0].length 那样访问内部数组的长度时,它返回总是抛出ArrayIndexOutOfBoundsException。 (这只是一个测试。)

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

  1. 这种声明对内存管理有影响吗?
  2. 它会使编码和运行代码变得复杂吗?
  3. Java 真的允许这种声明吗?
  4. 他们在什么意义上允许这种声明,或者他们只是忽略了这种情况?
  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]

当然,循环不会执行,因此“内部数组”不会浪费

关于Java double[][] 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5132127/

相关文章:

java - 无法启动基于 Java Web Start JNLP 的应用程序(单签名 JAR)

java - JPA getSingleResult() 或 null

java - K-均值算法

java - Linux 中的 Watchdata 检查失败 - java.security.KeyStoreException : PKCS11 not found

java - 在 Java 中使用 Attach api

java 如何将这个 2.52E-5 更改为这个 0.0000252?

java - 我们是否需要在 ehcache 之上使用 terracotta 来进行集群?

java - Mandrill API 错误地显示 'sent' 状态

java - 如何使 File 类输入的文件名区分大小写?

java - Try/Catch block 问题