Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: array, size

Будут ли два массива с одинаковым количеством элементов занимать одинаковый объем памяти?

Вопрос проверяет понимание факторов, влияющих на фактический размер массивов в памяти.

Короткий ответ

Не всегда.
Размер массива зависит не только от количества элементов.
Важны тип элементов, размер заголовка и выравнивание.
Массивы разных типов с одинаковой длиной могут занимать разный объем памяти.
Даже одинаковые массивы могут отличаться из-за JVM.

Длинный ответ

На первый взгляд кажется, что два массива одинаковой длины должны занимать одинаковую память, но это не так.

Факторы, влияющие на размер массива

Перед перечислением важно отметить, что JVM добавляет служебные данные.

Основные факторы:

  1. Тип элементов массива.

  2. Размер заголовка объекта.

  3. Выравнивание памяти.

  4. Архитектура JVM (32/64-bit, Compressed Oops).

Примеры различий

int[] a = new int[10];
long[] b = new long[10];

Хотя длина одинаковая:

  • int занимает 4 байта

  • long занимает 8 байт

Итоговый размер массивов будет разным.

Влияние выравнивания

Даже если:

  1. Полезные данные совпадают по размеру,

  2. JVM может добавить padding,

  3. Итоговый размер округляется вверх.

Краткий вывод

Одинаковое количество элементов не гарантирует одинаковый объем памяти — решающими являются тип данных и накладные расходы JVM.

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • Java

    Java

Ключевые слова

#array

#size

Подпишись на Java Developer в телеграм