Ответ
Нет. Массив — это ссылочный тип (reference type), а не примитивный. В Java существует четкое разделение:
- Примитивные типы (8 штук):
boolean,byte,char,short,int,long,float,double. Они хранят значения непосредственно в переменной. - Ссылочные типы: Классы, интерфейсы, перечисления, аннотации и массивы. Переменная ссылочного типа хранит адрес объекта в куче (heap).
Ключевые отличия массива от примитива:
// ПРИМИТИВ: переменная 'x' хранит само значение 10
int x = 10;
// МАССИВ (ссылочный тип): переменная 'arr' хранит ссылку на объект-массив
int[] arr = new int[5];
arr[0] = 10;
// 1. Создание через 'new' (как объект)
double[] prices = new double[10];
// 2. Наследование от Object
System.out.println(arr instanceof Object); // true
// 3. Значение по умолчанию
int[] newArr = new int[3];
System.out.println(newArr[0]); // 0 (для примитивов)
String[] newStrArr = new String[2];
System.out.println(newStrArr[0]); // null (для объектов)
Почему это важно:
- Массивы передаются в методы по ссылке (изменения внутри метода влияют на оригинальный массив).
- Массивы могут быть
null. - Для сравнения массивов по содержимому используйте
Arrays.equals(), а не оператор==(который сравнивает ссылки).