如果在 java 中运行以下代码:
public class Testing {
public static void main(String[] args) {
TestObject[] array = new TestObject[4];
//array[0] = new TestObject();
System.out.println(Arrays.asList(array));
}
}
class TestObject {
String aString;
public TestObject() {
aString = "This has been initialized.";
}
}
它将打印 (null, null, null, null),如果array[0] = new TestObject();
未注释,则第一个对象将具有内存地址(而不是 null)。我只是对为什么当数组第一次正确初始化时Java不会自动调用数组中每个对象的构造函数感到困惑。它现在的工作方式有什么优势?这是空间问题(因为这样做成本太高)?
也许我只是忽略了一些愚蠢的事情,或者我只是弄错了。这与我遇到的问题没有直接关系,所以如果是错误的论坛,我深表歉意。