awesome-everything EN
↑ Обратно к восхождению

Базовый CS с нуля

Данные в памяти: тест с выбором ответа

Суть Тест с выбором на синтез по всему юниту: contiguous-раскладка, арифметика индекса, объекты с именованными полями и как reference позволяет контейнеру фиксированной формы хранить данные переменного размера.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на middle-высоте — в небе
◷ 13 min

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

Цель

Убедись, что связываешь четыре идеи юнита: ячейки одного размера, лежащие contiguous; формулу «индекс → адрес»; объекты с именованными полями; и reference, которые позволяют фиксированной сетке хранить вещи переменного размера.

Викторина

Array из 8 чисел занимает один contiguous-блок в 32 байта. Какое утверждение о его раскладке верно?

Викторина

Доступ к arr[3000] занимает столько же времени, сколько к arr[3]. Почему доступ к array — константное время?

Викторина

Почему первый элемент array имеет index 0, а не index 1?

Викторина

Array достаёт значение через arr[2]; объект достаёт значение через user.age. В чём ключевое различие и что из него следует?

Викторина

У тебя array из 100 объектов user, каждый разного размера. Как он лежит в памяти, сохраняя contiguous-сетку array из равных ячеек?

Викторина

Чтение users[1].name в array объектов занимает два прыжка (hop). Какие они и почему два?

Итог

Сквозная линия юнита — одна слоистая картина. Array — это contiguous-ряд из равных ячеек, поэтому адрес любого элемента — одно умножение и одно сложение (base + i x element_size): константное время, а index 0 навязан нулевым offset. Объект группирует значения по имени, а не по позиции, поэтому порядок полей не несёт смысла. А так как ячейка фиксированного размера не вмещает объект переменного размера, ячейки хранят reference — адреса одного размера — позволяя единообразной сетке указывать на данные переменной формы. Доведённые до конца, вложенные данные — это graph of cells: одни хранят значения, другие хранят адреса, связанные вместе.

Продолжить восхождение ↑Данные в памяти: тест на свободное вспоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources2
expand
  1. 01
  2. 02

Trademarks belong to their respective owners. Editorial reference only.