Вопрос проверяет понимание представления массивов примитивов в памяти и их отличий от массивов ссылок.
Массив примитивов в Java — это объект.
Он содержит заголовок и непрерывный блок памяти с элементами.
Все значения примитивов хранятся подряд без ссылок.
Это делает доступ быстрым и кэш-дружественным.
Размер массива легко предсказуем.
Перед разбором важно зафиксировать ключевой факт: массив — это объект.
Определение:
Массив примитивов — это объект, который содержит служебную информацию и последовательность значений примитивного типа.
В памяти он состоит из:
Заголовка объекта.
Поля длины массива (length).
Непрерывного блока значений.
Элементы:
Хранятся подряд.
Не являются объектами.
Не содержат ссылок.
Пример:
int[] arr = new int[3];
В памяти:
заголовок
длина массива
int, int, int
Это дает:
Быстрый доступ по индексу (O(1)).
Хорошую локальность данных.
Минимальные накладные расходы.
Как и у объектов:
Общий размер массива выравнивается.
Возможно добавление padding.
Массив примитивов — это объект с заголовком и плотным блоком значений, что делает его эффективным по памяти и скорости.