Механизмы синхронизации помимо synchronized и Atomic Lock: позволяет детальнее управлять блокировками; ReentrantLock поддерживает tryLock и таймауты Semaphore: регулирует доступ к ресурсу, ограничивая одновременно…
Какие операции и функции безопасны для nil-среза в Go? Context: Go, срезы (slice) nil-срез — срез со значением nil и нулевой длиной Методы (функции) для срезов — как правило, это функции пакета sort, append и операции…
Слайс в Go представляет собой динамический изменяемый участок массива. Создавать слайсы можно с помощью литералов, функции make или выделения части другого слайса. Читать и изменять элементы разрешается по индексу;…
Преимущества микросервисной архитектуры по сравнению с монолитом Масштабируемость: отдельные сервисы можно масштабировать независимо, рационально распределяя ресурсы Независимая разработка: команды автономно…
Способы разрешения коллизий в хэш-таблицах Открытая адресация: свободная позиция подбирается прямо внутри массива варианты: линейное и квадратичное пробирование, а также двойное хеширование Цепочки (chaining):…
Структуры данных JavaScript основные примитивы: string, number, boolean коллекции: Array (список с заданным порядком), Object (хранилище пар «ключ-значение») структуры, появившиеся в ES6: Map — коллекция пар…
Основные типы коллекций в Swift В Swift предусмотрены 3 базовые коллекции: Array, Set и Dictionary Array — упорядоченная последовательность, в которой допускаются дубликаты Set — неупорядоченная коллекция уникальных…
Сложность поиска в B-tree и Hash-индексе B-tree: сбалансированная структура с отсортированными ключами асимптотическая сложность поиска: O(log n) — определяется высотой дерева поиск выполняется переходами между…
Как оценить скорость работы словаря (Big O)? словарь представляет структуру ключ → значение (хеш-таблицу) вставка, поиск и удаление обычно имеют amortized O(1) (среднюю амортизированную сложность) в худшем случае при…
Временная сложность операций List: add, remove, contains Контекст: List может быть динамическим массивом или связанным списком add (добавление): Для ArrayList: амортизированно O(1) при добавлении в конец При…
Какова разница между слайсами и массивами в Go? в Go используются два типа данных: массив и слайс массив имеет фиксированный размер, который является частью его типа слайс динамичен и представляет собой ссылку на…
Алгоритмическая сложность доступа к map по ключу map представляет собой структуру данных «ключ → значение» и обычно реализуется на основе хеш-таблицы средняя сложность доступа составляет O(1) при коллизиях в худшем…