Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Можете ли вы объяснить, что такое BrowserRouter и HashRouter?
BrowserRouter и HashRouter — это методы маршрутизации в React Router. BrowserRouter использует истинные URL, в то время как HashRouter использует хэш-фрагменты (#).
Что такое webpack-chunk-hash и зачем он нужен?
webpack-chunk-hash генерирует уникальные хэши для чанков на основе их содержимого. Это важно для кэширования: измененные файлы получают новый хэш, а неизмененные остаются закэшированными, ускоряя загрузку.
Параллелизм в ConcurrentHashMap vs Collections.synchronizedMap
ConcurrentHashMap делит данные на сегменты (бакеты), позволяя параллельно писать в разные сегменты. Collections.synchronizedMap блокирует всю коллекцию на каждую операцию. Это делает ConcurrentHashMap быстрее в многопоточной среде.
Как работает HashMap? Какие механизмы обеспечивают константную сложность поиска?
HashMap хранит данные в корзинах (buckets), используя хеш-код ключа. Константная сложность O(1) достигается за счёт:
Хорошей хеш-функции.
Маленькой нагрузки (load factor).
Преобразования списков в деревья при коллизиях (Java 8+).
Почему Hashtable считается устаревшим в Java?
Hashtable — старый класс из Java 1.0, синхронизирует все методы на уровне объекта, что приводит к сильным блокировкам и снижению производительности при конкуррентном доступе. Современные альтернативы (ConcurrentHashMap, Collections.synchronizedMap) более гибкие и эффективные.
Можно ли использовать объект как ключ в HashMap, если у него есть изменяемые поля?
Что такое Hash в Ruby? Чем Hash отличается от массива?
Зачем ключам в словаре требуется соответствие Hashable и Equatable?
Что такое HashMap в Rust и когда стоит его использовать?
Для чего переопределяют методы GetHashCode и Equals и как они используются в Dictionary<TKey, TValue>?
Рейтинг:
2
Сложность:
5
Нежелательно. Если поля, участвующие в hashCode() или equals(), изменяются после помещения в HashMap, объект «потеряется» в корзинах: поиск по старому хешу не найдёт его в новом состоянии.
Рейтинг:
3
Сложность:
5
Hash — это коллекция пар ключ-значение, где каждое значение связано с уникальным ключом. В отличие от массива, где элементы упорядочены и индексируются числами, в хэше порядок не важен, и доступ к значениям осуществляется через ключи.
Рейтинг:
2
Сложность:
5
Hashable нужен, чтобы ключ помещался в хеш-таблицу и рассчитывался его хеш-код для быстрого доступа. Equatable — чтобы при коллизиях (одинаковые хеш-коды) можно было точно сравнить два ключа и выбрать нужный. Без этих протоколов словарь не сможет эффективно хранить и находить пары «ключ→значение».
Рейтинг:
2
Сложность:
6
HashMap — это коллекция, состоящая из пар ключ-значение. Она эффективно используется для быстрого доступа к данным по ключу и особенно полезна, когда необходимо искать значения по уникальному ключу.
Рейтинг:
2
Сложность:
7
Equals определяет, считаются ли два объекта равными по содержанию, а GetHashCode возвращает целочисленный хеш-код, используемый для распределения в бакеты Dictionary. При вставке Dictionary вычисляет hash = key.GetHashCode(), находит бакет по hash % buckets.Length, а затем в цепочке вызывает Equals для обнаружения точного совпадения ключа. Некорректная реализация может привести к потере или дублированию элементов.
Рейтинг:
2
Сложность:
5
Рейтинг:
3
Сложность:
7
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
7