Специализация
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 в телеграм
Что такое стек (stack)? Что такое очередь (queue)?
Стек — это структура данных, работающая по принципу LIFO (последним пришёл — первым ушёл), где элементы добавляются и удаляются с одного конца. Очередь работает по принципу FIFO (первым пришёл — первым ушёл), где элементы добавляются с одного конца, а удаляются с другого. Обе используются для управления порядком обработки элементов.
В чём разница между stack и heap?
Стек — быстрый LIFO-пулл памяти для локальных переменных функций, освобождаемый при выходе из функции. Куча — более медленное, но гибкое хранилище для объектов с динамическим временем жизни, управляемое сборщиком мусора. Go компилятор решает, что аллоцировать на стеке, а что — в куче, через escape-анализ.
Почему у каждого потока свой stack?
У каждого потока свой stack, потому что каждый поток выполняет свой набор вызовов методов.
В стеке хранятся локальные переменные и состояние выполнения, которое нельзя разделять между потоками.
Если бы стек был общий, потоки мешали бы друг другу и ломали бы выполнение методов.
Раздельный стек обеспечивает изоляцию и безопасность выполнения.
Для чего нужен stack в Java?
Stack нужен для хранения контекста выполнения методов.
В стеке лежат локальные переменные, параметры методов и информация о том, куда возвращаться после вызова.
Каждый вызов метода добавляет новый «кадр» в стек.
Когда метод завершается, его кадр удаляется, и выполнение возвращается назад.
Из-за чего может возникать ошибка StackOverflowError?
Бесконечная рекурсия.
Глубокая цепочка вызовов методов (например, 10 000 вложенных вызовов).
Как устроена память в Java (heap и stack)?
В чём различие между stack и heap?
Как реализована навигация в SwiftUI (NavigationStack vs NavigationView)?
Что такое стек (stack) в C?
Какие типы данных обычно хранятся в stack, а какие в heap?
Рейтинг:
1
Сложность:
6
Heap (куча): Хранит объекты и массивы. Управляется сборщиком мусора (GC).
Stack (стек): Хранит примитивы и ссылки на объекты для каждого потока.
Рейтинг:
5
Сложность:
7
Stack и heap — это разные области памяти с разными правилами работы. Stack используется для хранения локальных значений и работает очень быстро. Heap предназначен для динамически выделяемых объектов и управляется сложнее. В Swift value types чаще живут в stack, а reference types — в heap. Это напрямую влияет на производительность и управление памятью.
Рейтинг:
2
Сложность:
5
NavigationView — более ранний контейнер для навигации, который оборачивает вью в стек. NavigationStack появился в iOS 16 и управляет путём как списком состояний, даёт более гибкий контроль и поддержку глубоких переходов. Для новых проектов рекомендуют NavigationStack.
Рейтинг:
2
Сложность:
6
Стек — это структура данных, работающая по принципу LIFO (Last In, First Out), что означает, что последний добавленный элемент удаляется первым. Доступ к элементам возможен только с вершины стека. Основные операции:
push() — добавление элемента в стек.
pop() — удаление элемента из стека.
Рейтинг:
5
Сложность:
7
В stack обычно хранятся value types, такие как struct и enum. В heap хранятся reference types, то есть классы. Stack используется для данных с коротким временем жизни. Heap нужен для объектов, которые живут дольше и передаются по ссылке. Это разделение важно для производительности.
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
6
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
6
Рейтинг:
1
Сложность:
6