Dlaczego Java nie inicjuje obiektów Array?
Jeśli uruchamia się następujący kod w 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.";
}
}
Będzie drukować (null, null, null, null) i ifarray[0] = new TestObject();
jest niekomentowany, wtedy pierwszy obiekt będzie miał adres pamięci (i nie będzie pusty). Jestem po prostu zdezorientowany, dlaczego Java nie wywołuje automatycznie konstruktora dla każdego obiektu w tablicy, gdy tablica jest po raz pierwszy poprawnie zainicjowana. Jakie są zalety sposobu, w jaki działa teraz? Czy jest to kwestia przestrzeni (jak na to byłoby zbyt kosztowne)?
Może po prostu przeoczyłem coś głupiego lub po prostu się mylę. Nie jest to bezpośrednio związane z problemem, który mam, więc jeśli to złe forum, przepraszam.