Tak, tworzy tylko odwołania, dla których domyślna wartość to null. Dlatego otrzymujesz wyjątek NullPointerException Musisz utworzyć obiekty osobno i przypisać odwołanie. Istnieją 3 kroki, aby utworzyć tablice w Javie -
Deklaracja - W tym kroku określamy typ danych i wymiary tablicy, którą zamierzamy utworzyć. Pamiętaj jednak, że nie wspominamy jeszcze o rozmiarach. Zostają puste.
Tworzenie instancji - w tym kroku tworzymy tablicę lub przydzielamy pamięć dla tablicy, używając nowego słowa kluczowego. Na tym etapie wspominamy o rozmiarach wymiarów tablicy.
Inicjalizacja - tablica jest zawsze inicjowana do wartości domyślnej typu danych. Ale możemy tworzyć własne inicjalizacje.
Deklarowanie tablic w Javie
W ten sposób deklarujemy jednowymiarową tablicę w Javie -
int[] array;
int array[];
Oracle zaleca stosowanie poprzedniej składni do deklarowania tablic. Oto kilka innych przykładów deklaracji prawnych -
// One Dimensional Arrays
int[] intArray; // Good
double[] doubleArray;
// One Dimensional Arrays
byte byteArray[]; // Ugly!
long longArray[];
// Two Dimensional Arrays
int[][] int2DArray; // Good
double[][] double2DArray;
// Two Dimensional Arrays
byte[] byte2DArray[]; // Ugly
long[] long2DArray[];
Oto niektóre przykłady nielegalnych deklaracji -
int[5] intArray; // Don't mention size!
double{} doubleArray; // Square Brackets please!
Instancja
W ten sposób „tworzymy” lub przydzielamy pamięć dla tablicy -
int[] array = new int[5];
Kiedy JVM napotka new
słowo kluczowe, zrozumie, że musi przydzielić pamięć na coś. Określając int[5]
, mamy na myśli, że chcemy tablicy int
s, o rozmiarze 5. Zatem JVM tworzy pamięć i przypisuje odwołanie do nowo przydzielonej pamięci do tablicy, która jest „referencją” typuint[]
Inicjalizacja
Korzystanie z pętli - Użycie pętli for do inicjowania elementów tablicy jest najczęstszym sposobem uruchomienia tablicy. Nie ma potrzeby uruchamiania pętli for, jeśli zamierzasz przypisać samą wartość domyślną, ponieważ JVM robi to za Ciebie.
Wszystko w jednym..! - Możemy zadeklarować, utworzyć i zainicjować naszą tablicę za jednym razem. Oto składnia -
int[] arr = {1, 2, 3, 4, 5};
Tutaj nie wspominamy o rozmiarze, ponieważ JVM widzi, że podajemy 5 wartości.
Tak więc, dopóki nie utworzymy instancji, referencje pozostają zerowe. Mam nadzieję, że moja odpowiedź pomogła ci ...! :)