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.

questionAnswers(2)

yourAnswerToTheQuestion