Подборка объединяет вопросы, отмеченные на этапах интервью в ВК. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: frontend, browser, mobile.
Как устроен ARC и в чём его отличие от MRC? Контекст: управление памятью в Objective-C и Swift MRC (Manual Retain-Release): разработчик самостоятельно вызывает retain и release при неверном подсчёте ссылок легко…
Как работает RunLoop в iOS-разработке? основной механизм обработки очереди событий в iOS поддерживает бесконечный цикл, в котором обрабатываются события UI, таймеры и задачи обеспечивает асинхронное выполнение задач в…
Словарь (Dictionary) — коллекция, в которой данные представлены парами ключ-значение, причём каждый ключ уникален В основе лежит хеш-таблица, обеспечивающая быстрый доступ к элементам Ключи обязаны соответствовать…
Как работают autorelease и autorelease pool? управление памятью в Objective-C autorelease: отложенное освобождение объекта autorelease pool: контейнер для объектов, ожидающих освобождения освобождение объектов…
Что представляют собой weak-ссылки и каков принцип их работы? Weak-ссылка — это ссылка, которая не мешает сборщику мусора освободить объект Если объект удерживается только weak-ссылками, он считается доступным для…
Слабые ссылки — это ссылки, которые не препятствуют сборщику мусора GC освобождать объект. В Java для этого применяют класс WeakReference. Для коллекций используют WeakHashMap (ключи в ней являются слабыми ссылками)…
Как связаны точки и пиксели и как рассчитать масштаб устройства? точки (points) — логические единицы для измерения интерфейса пиксели (pixels) — физические элементы экрана scale = pixels / points — коэффициент…
DispatchGroup — инструмент GCD для объединения асинхронных задач Перед запуском каждого запроса создаём DispatchGroup и вызываем enter() После завершения очередного запроса вызываем leave() С помощью notify() получаем…
Синхронизация доступа к переменной Мьютексы (Mutexes) — не позволяют другим потокам обращаться к данным, пока блокировка не будет снята RW-локи (Read-Write Locks) — допускают одновременное чтение несколькими потоками,…
Optional представляет собой контейнер, который может содержать значение или nil Собственный аналог Optional можно описать через enum с вариантами .some и .none Вложенный Optional, например Int???, — это Optional,…
Как сократить число аллокаций памяти при конкатенации строк в цикле? строковые операции: неизменяемость строк конкатенация +=внутри цикла приводит к созданию новых объектов применять буферы: StringBuilder (Java),…
Сеть Pod — фундаментальный сетевой уровень Kubernetes отвечает за связь между Pod внутри кластера каждому Pod назначается собственный IP-адрес без NAT — обмен данными выполняется напрямую по IP создаётся с помощью…