Да, он создает только ссылки, для которых по умолчанию установлено значение null. Вот почему вы получаете NullPointerException. Вам нужно создавать объекты отдельно и назначать ссылку. Есть 3 шага для создания массивов в Java -
Объявление - на этом шаге мы указываем тип данных и размеры массива, который мы собираемся создать. Но помните, мы пока не упоминаем размеры размеров. Они оставлены пустыми.
Instantiation - на этом этапе мы создаем массив или выделяем память для массива, используя ключевое слово new. Именно на этом этапе мы упоминаем размеры размеров массива.
Инициализация - массив всегда инициализируется значением по умолчанию для типа данных. Но мы можем сделать наши собственные инициализации.
Объявление массивов в 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 значений.
Итак, до тех пор, пока мы не создадим ссылки, они останутся нулевыми. Я надеюсь, что мой ответ помог вам ..! :)