Специализация
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 в телеграм
Чем отличаются Filters, Interceptors и Listeners в Spring?
Filters обрабатывают входящие запросы до и после выполнения сервлетов. Interceptors применяются для обработки запросов внутри Spring MVC, обрабатывая их до и после контроллеров. Listeners реагируют на события жизненного цикла приложения или сессий, а не на HTTP-запросы.
Что такое list comprehension?
List comprehension — это сокращённый синтаксис для создания списков на основе последовательностей. Он позволяет создавать новые списки, применяя условия и преобразования к элементам существующего списка или другой последовательности.
В чём разница между ArrayList и LinkedList? Какие операции эффективны для каждой из них?
ArrayList — массив с динамическим размером. Эффективен для доступа по индексу (O(1)), но вставка/удаление в середину медленные (O(n)).
LinkedList — двусвязный список. Быстрая вставка/удаление (O(1)), но доступ по индексу медленный (O(n)).
Расскажи про Capture List.
Capture List в Swift используется для управления поведением замыканий, определяя, как именно они захватывают внешние переменные. Это помогает избежать циклических ссылок и утечек памяти.
Что такое plist?
Plist (Property List) — это файл, содержащий структуру данных в формате ключ-значение, который используется для хранения настроек и конфигурационных данных в iOS-приложениях. Он часто используется для хранения метаданных, таких как настройки приложения или параметры.
Почему RecyclerView считается лучше ListView?
Что такое LinkedList<T>, какие типы существуют, и в каких случаях его целесообразно использовать вместо List<T>?
Как устроен List<T> под капотом и как он управляет размером внутреннего массива при добавлении элементов?
Какова сложность доступа к элементу по индексу в List<T> и почему?
Что такое List<T> и как реализованы его Count и Capacity?
Рейтинг:
2
Сложность:
6
LinkedList<T> — это двусвязный список, где каждый узел хранит ссылку на следующий и предыдущий узел. В .NET он представлен классом LinkedList<T> и узлами LinkedListNode<T>. Он полезен, когда нужно часто вставлять или удалять элементы в середине списка при наличии ссылки на узел (операции O(1)), в отличие от List<T>, где при вставке или удалении в середине требуется сдвиг массива O(n). Доступ по индексу у linked-list — O(n).
Рейтинг:
2
Сложность:
6
List<T> хранит элементы в приватном массиве T[] _items. Поле Count — число заполненных ячеек, а Capacity — длина массива. При добавлении, если Count < Capacity, новый элемент помещается по индексу Count++. Если массив полон, вызывается EnsureCapacity, который создаёт новый массив (обычно размером в полтора-два раза больше), копирует старые элементы и заменяет _items.
Рейтинг:
2
Сложность:
5
Доступ по индексу к List<T> выполняется за время O(1) — константное. Это происходит потому, что List<T> хранит элементы в непрерывном массиве, и обращение по индексу сводится к вычислению адреса памяти base + index * sizeof(T) и чтению значения.
Рейтинг:
2
Сложность:
6
List<T> — это обёртка над массивом T[], которая автоматически расширяется по мере добавления элементов. Поле Count хранит число фактически добавленных элементов, а Capacity — длину внутреннего массива. При достижении Count == Capacity при добавлении нового элемента создаётся новый массив с увеличенной Capacity (обычно в полтора раза), в который копируются старые элементы.
Рейтинг:
3
Сложность:
7
Рейтинг:
2
Сложность:
3
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
3