Czy w poniższym wierszu kodu kompilator alokuje pamięć do przechowywania 10 obiektów MyClass lub 10 odwołań?

MyClass[] arr= new MyClass[10];

Innymi słowy, czy tablice przechowują same referencje, czy same obiekty?

Czy zachowanie jest inne dla typów pierwotnych?

4
Shailesh Tainwala 9 czerwiec 2011, 17:32

2 odpowiedzi

Najlepsza odpowiedź

Przydziela miejsce na referencje. W przypadku typów pierwotnych alokuje spację = długość tablicy * rozmiar bajtu typu pierwotnego.

5
Marcelo 9 czerwiec 2011, 17:34

Po utworzeniu w ten sposób tablice są automatycznie inicjowane z domyślną wartością ich typu, więc arr zostaje zainicjowany z 10 referencjami null.

5
NPE 9 czerwiec 2011, 17:35