Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

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

Чем с точки зрения памяти отличается одномерный и двумерный массив?

Вопрос проверяет понимание того, как многомерные массивы реально представлены в памяти JVM.

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

Одномерный массив — это один объект с непрерывным блоком элементов.
Двумерный массив в Java — это массив массивов.
Он состоит из нескольких объектов, связанных ссылками.
Память для строк двумерного массива не обязательно непрерывна.
Из-за этого увеличиваются накладные расходы по памяти.

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

Чтобы понять разницу, важно помнить, что в Java нет настоящих многомерных массивов.

Одномерный массив

Определение:
Одномерный массив — это объект, содержащий заголовок и непрерывный блок элементов одного типа.

Пример:

int[] arr = new int[5];

В памяти:

  1. Один объект.

  2. Один заголовок.

  3. Один непрерывный блок из 5 int.

Двумерный массив

Определение:
Двумерный массив — это массив, элементы которого являются ссылками на другие массивы.

Пример:

int[][] matrix = new int[3][4];

В памяти:

  1. Один объект — массив ссылок длины 3.

  2. Три отдельных объекта — массивы int[4].

  3. Между ними — ссылки.

Ключевые отличия

  1. Больше объектов в куче.

  2. Больше заголовков объектов.

  3. Отсутствие гарантии непрерывности памяти.

  4. Более высокая нагрузка на GC.

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

Одномерный массив — это один компактный объект, а двумерный массив — это набор объектов, связанных ссылками, что увеличивает накладные расходы по памяти.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Java

    Java

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

#multidimensional

#array

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