Если отдельные элементы массива int не инициализируются, что хранится в них по умолчанию? По-видимому, я обнаружил, что есть что-то вроде пустого массива или нулевого массива. В чем разница, и что относится к моему первому вопросу?
В чем разница между пустым массивом и пустым массивом?
Ответ 1
Технически говоря, нет такой вещи, как нулевой массив; но поскольку массивы являются объектами, типы массивов являются ссылочными типами (то есть: переменные массива просто содержат ссылки на массивы), а это означает, что переменная массива может быть null
вместо фактического указания на массив:
int[] notAnArray = null;
Пустым массивом является массив с нулевой длиной; он не имеет элементов:
int[] emptyArray = new int[0];
(и никогда не может иметь элементов, поскольку длина массива никогда не изменяется после его создания).
При создании непустого массива без указания значений для его элементов они по умолчанию имеют нулевые значения — 0
для целочисленного массива, null
для массива типа объекта и т.д.; так что:
int[] arrayOfThreeZeroes = new int[3];
совпадает с этим:
int[] arrayOfThreeZeroes = { 0, 0, 0 };
(хотя эти значения могут быть повторно назначены впоследствии, длина массива не может измениться, но его элементы могут измениться).
Ответ 2
По умолчанию java инициализирует массив в соответствии с объявленным типом. Это int, тогда он инициализируется равным 0. Если он имеет тип объекта, такой как массив объекта, тогда он инициализируется нулем.
Ответ 3
Если отдельные элементы массива int не инициализируются, что по умолчанию хранится в них?
0
пустой массив - это массив с 0 элементами
Я не слышал о null
массиве, но это, вероятно, массив с ненулевой ссылкой элемента, которые null
Ответ 4
В массиве его члены инициализируются значениями по умолчанию. Для int
значение по умолчанию равно 0. Для Object
it null
. A null
- это null
Array Reference (поскольку массивы являются ссылочными типами в Java).
JLS-4.12.5 Начальные значения переменных в части
Для типа int значение по умолчанию равно нулю, то есть 0.
и
Для всех ссылочных типов (§4.3) значение по умолчанию равно null.