Размер массива записан в переменную length. Нумерация элементов массива начинается с нуля. Поэтому индекс последнего элемента равен length-1. И массивы, и коллекции защищены от выхода за границу диапазона. Если случается выход за границу массива, то генерируется исключение ArrayIndexOutOfBoundsException.
Его перехватывать нежелательно, так как это RuntimeException, и оно сигнализирует о том, что программа работает неверно.
Пример создания и использования массива:
int[] a = new int[5];
for (int i=0; i<a.length; i++)
System.out.println(a[i]);
В данном примере создается массив целых чисел, и его элементы выводятся на печать. При создании массива все его элементы инициализируются значением по умолчанию. Для примитивных числовых типов (int,long и т.д.) этим значением является 0 (ноль), для типа boolean значением по умолчанию является false, для ссылок значение по умолчанию - null.
Можно запомнить значения по умолчанию в следюущем виде: "0/false/null".
В следующем примере массив инициализируется сразу при создании:
int[] a = {
2,
5,
(int)Math.pow(4,8)
};
Инициализирующее выражение может быть любым, в том числе это может быть вызов метода.
Массив объектов содержит не сами объекты, а ссылки на них. По умолчанию ссылка инициализируется null-значением. См. следующий пример:
Как и следует ожидать, на печать будет выведен столбик из null-значений. Если попытаться обратиться к элементам массива сразу после создания, без инициализации, то будет выкинуто NullPointerException.
String[] a = new String[5];
for (int i=0; i<a.length; i++)
System.out.println(a[i]);
Другое дело, если после создания в массиве будут сохранены ссылки на объекты. См. пример:
String[] a = new String[5];
a[0] = "abc";
a[1] = "def";
a[2] = "ghi";
a[3] = "jkl";
a[4] = "mno";
for (int i=0; i<a.length; i++)
System.out.println(a[i]);
В этом случае на печать будет выведен столбик строковых значений.
В Java возможно создание массивов нулевой длины. Например:
String[] a = new String[0];
System.out.println(a.length);
Иногда это бывает полезно.
Комментариев нет:
Отправить комментарий