Специализация
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 в телеграм
Как работает сборщик мусора (garbage collector) в JavaScript? Какие есть стратегии для управления памятью?
Сборщик мусора в JavaScript автоматически освобождает память, удаляя объекты, на которые больше нет ссылок. Основной механизм — это "сборка по достижению" (mark-and-sweep), где объекты помечаются как достижимые или нет. Оптимизация работы с памятью заключается в том, чтобы избегать удержания ненужных ссылок на объекты и помнить о замыканиях, которые могут сохранять данные в памяти дольше, чем требуется.
Сравни garbage collector и ARC.
Garbage Collector периодически ищет и удаляет недостижимые объекты, что может вызывать паузы. ARC немедленно освобождает память, когда счётчик ссылок становится нулём, что более предсказуемо, но не handles циклические ссылки автоматически. ARC обычно быстрее, но требует внимания к циклам.
Зачем нужна куча в .NET? (в контексте работы Garbage Collector)
Управляемая куча (Managed Heap) — это область памяти, где размещаются все ссылочные типы данных в .NET. Она нужна для автоматического управления памятью с помощью Сборщика мусора (Garbage Collector, GC). GC отслеживает объекты в куче, освобождает память от тех, которые больше не используются программой, и упорядочивает оставшиеся объекты для уменьшения фрагментации.
Какие Garbage Collector’ы ты знаешь?
В JVM существует несколько реализаций сборщиков мусора.
Они отличаются по задержкам, пропускной способности и сложности.
Выбор GC зависит от типа нагрузки и требований к паузам.
Нет универсального сборщика для всех случаев.
Как garbage collector понимает, что объект больше не нужен?
Garbage Collector считает объект ненужным, если до него нельзя добраться из корневых ссылок.
Корневые ссылки включают локальные переменные стека, статические поля и активные потоки.
Если объект недостижим, он может быть удалён при очередном запуске GC.
GC не удаляет объекты по таймеру или по счётчику ссылок.
Удаление происходит автоматически и недетерминированно.
Что делает garbage collector и зачем он нужен?
Рейтинг:
5
Сложность:
5
Garbage collector в Python ищет и удаляет объекты, которые участвуют в циклических ссылках и не могут быть освобождены обычным подсчётом ссылок. Он периодически анализирует граф объектов и определяет недостижимые циклы. После этого такие объекты освобождаются. Это позволяет избежать утечек памяти в программах со сложными структурами данных.
Рейтинг:
3
Сложность:
8
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
7
Рейтинг:
5
Сложность:
7
Рейтинг:
5
Сложность:
6