Ответ
Нет, массивы в Java — это не примитивы, а объекты. Они являются объектами специального типа, создаваемыми во время выполнения.
Доказательства того, что массивы — это объекты:
-
Наследование от
Object: Все массивы неявно наследуют классjava.lang.Object.int[] intArray = new int[5]; System.out.println(intArray instanceof Object); // true -
Наличие методов класса
Object: К массиву можно применять методыtoString(),hashCode(),clone().String[] strArray = {"a", "b"}; System.out.println(strArray.toString()); // Вызовется Object.toString() -
Поле
length: Это не метод, а финальное публичное поле, характерное для объектов-массивов.System.out.println(intArray.length); // 5 -
Приведение типов: Массивы участвуют в иерархии ссылочных типов.
Object obj = new int[10]; // Массив может быть присвоен переменной типа Object String[] strings = (String[]) obj; // Возможно приведение (выбросит ClassCastException в этом случае)
Отличия от примитивов:
- Примитивы (
int,charи т.д.) не являются объектами, не имеют методов и не наследуютObject. - Массив хранит свои элементы (примитивы или ссылки) в непрерывной области памяти, но сама переменная массива — это ссылка на этот объект в куче (heap).
Синтаксис создания: new int[5] — ключевое слово new используется для создания объектов, что также подтверждает природу массивов.