Так, він створює лише посилання, які встановлені на їх значення за замовчуванням null. Ось чому ви отримуєте NullPointerException Вам потрібно створити об'єкти окремо і призначити посилання. Для створення масивів у Java є 3 кроки -
Декларація - на цьому кроці ми визначаємо тип даних та розміри масиву, який ми збираємося створити. Але пам’ятайте, ми ще не згадуємо розміри розмірів. Вони залишаються порожніми.
Моментальність - на цьому кроці ми створюємо масив або виділяємо пам'ять для масиву, використовуючи нове ключове слово. Саме на цьому кроці ми згадуємо розміри розмірів масиву.
Ініціалізація - масив завжди ініціалізується до типового значення даних. Але ми можемо зробити власні ініціалізації.
Оголошення масивів на Java
Ось як ми оголошуємо одновимірний масив на Java -
int[] array;
int array[];
Oracle рекомендує використовувати колишній синтаксис для оголошення масивів. Ось кілька інших прикладів юридичних декларацій -
// 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[];
Ось кілька прикладів незаконних декларацій -
int[5] intArray; // Don't mention size!
double{} doubleArray; // Square Brackets please!
Моментальність
Ось як ми «інстанціюємо» або виділяємо пам'ять для масиву -
int[] array = new int[5];
Коли JVM стикається з new
ключовим словом, він розуміє, що він повинен виділити пам'ять на щось. Вказуючи int[5]
, ми маємо на увазі, що ми хочемо масив int
s, розміром 5. Таким чином, JVM створює пам'ять і призначає посилання нововідведеної пам'яті для масиву, який є "посиланням" типуint[]
Ініціалізація
Використання циклу - використання циклу for для ініціалізації елементів масиву - це найпоширеніший спосіб запустити масив. Не потрібно запускати цикл for, якщо ви збираєтеся призначити значення за замовчуванням, оскільки JVM робить це за вас.
Все в одному..! - Ми можемо оголосити, миттєво і ініціалізувати наш масив за один раз. Ось синтаксис -
int[] arr = {1, 2, 3, 4, 5};
Тут ми не згадуємо розмір, оскільки JVM може бачити, що ми даємо 5 значень.
Отже, поки ми не інстанціюємо посилання залишаються нульовими. Сподіваюся, моя відповідь вам допомогла ..! :)