Вопрос проверяет понимание факторов, влияющих на фактический размер массивов в памяти.
Не всегда.
Размер массива зависит не только от количества элементов.
Важны тип элементов, размер заголовка и выравнивание.
Массивы разных типов с одинаковой длиной могут занимать разный объем памяти.
Даже одинаковые массивы могут отличаться из-за JVM.
На первый взгляд кажется, что два массива одинаковой длины должны занимать одинаковую память, но это не так.
Перед перечислением важно отметить, что JVM добавляет служебные данные.
Основные факторы:
Тип элементов массива.
Размер заголовка объекта.
Выравнивание памяти.
Архитектура JVM (32/64-bit, Compressed Oops).
int[] a = new int[10];
long[] b = new long[10];
Хотя длина одинаковая:
int занимает 4 байта
long занимает 8 байт
Итоговый размер массивов будет разным.
Даже если:
Полезные данные совпадают по размеру,
JVM может добавить padding,
Итоговый размер округляется вверх.
Одинаковое количество элементов не гарантирует одинаковый объем памяти — решающими являются тип данных и накладные расходы JVM.