- JDK 21
- Gradle (embedded in the project)
./gradlew clean build
- annotation
- cache
- collections
- common (some uncategorized stuff)
- core
- dynamic
- iterators
- jvm
- multithreading
- numeric
- parser
- proxy
- recursion
- refactoring
- search
- serialization
- sorting
- stream
- string
- tree
Sure, we have tests; they contain some code which describes implementation in a natural way.
SQL folder contains tasks which require writing SQL queries to solve them. Check appropriate video on YouTube
The interview-materials folder contains some notes about interview preparation and useful links. We can perceive materials in this folder as project backlog or "box with other stuff"
Expand me
Title | YouTube video link | Code / Repo link |
---|---|---|
Определение максимального количества зрителей стрима | YouTube | Code |
Подсчет количества людей каждого возраста (корзинная сортировка) | YouTube | Code |
Файловая система: структура данных и подсчет размера содержимого | YouTube | Code |
Подсчет количества кораблей на поле морского боя | YouTube | Code |
Сортировка выбором (Selection sort) | YouTube | Code |
Роняем JVM (2 решения) | YouTube | Code |
Самодельный Enum (Яндекс) | YouTube | Code |
Числа Фибоначчи (2 решения) | YouTube | Code |
Поиск второго по величине элемента массива (2 решения) | YouTube | Code |
Многопоточный стек | YouTube | Code |
Нахождение наибольшего общего делителя (2 решения) | YouTube | Code |
Поиск максимального произведения трех чисел в массиве | YouTube | Code |
Композитный итератор (Яндекс) | YouTube | Code |
Пузырьковая сортировка (2 решения) (Bubble sort) | YouTube | Code |
Бинарное дерево поиска | YouTube | Code |
Рекурсивный итератор (Яндекс) | YouTube | Code |
Поиск трех чисел с заданной суммой (2 решения) | YouTube | Code |
Валидация имени пользователя | YouTube | - |
Поиск цикла в связном списке: алгоритм Флойда | YouTube | Code |
Реализация cd для абстрактной файловой системы | YouTube | Code |
LRU кэш (Least Recently Used) (leetcode) | YouTube | Code |
Обход конем шахматной доски (Horse walk) | YouTube | Code |
Подсчет строк из InputStream, удовлетворяющих условию | YouTube | Code |
Поиск уникальных элементов в коллекции | YouTube | - |
Изменение формата страхового номера при помощи регулярных выражений | YouTube | Code |
Определение бита в бесконечной последовательности | YouTube | Code |
Запуск параллельного выполнения нескольких задач (3 решения) | YouTube | Code |
Четный итератор | YouTube | Code |
Задачи с палиндромами | YouTube | Code |
Расстановка ферзей на шахматной доске (N-Queens) (leetcode) | YouTube | Code |
Печать foobar из разных потоков | YouTube | Code |
Проверка симметричности матрицы | YouTube | Code |
Расчет давления в кирпичной пирамиде с помощью рекурсии | YouTube | Code |
Поиск подмножества с максимальной четной суммой за O(n) | YouTube | Code |
Обход бинарного дерева (4 способа) (Binary tree walk) | YouTube | Code |
Разворот односвязного списка (3 способа) (Reverse linked list) | YouTube | Code |
Самодельная аннотация | YouTube | Code |
Самодельный Atomic | YouTube | Code |
Поиск простых делителей числа (Prime dividers of number) | YouTube | Code |
Сортировка вставками (Insertion sort) | YouTube | Code |
Подсчет количества съеденных конфет | YouTube | Code |
Составление поезда из вагонов | YouTube | Code |
Очередь в прачечную | YouTube | Code |
Реализация целочисленного деления (2 решения) | YouTube | Code |
Ханойские башни (Hanoi towers) | YouTube | Code |
Быстрая сортировка (Quick sort) | YouTube | Code |
Генерация перестановок (leetcode) | YouTube | Code |
Интерполяционный поиск в упорядоченном массиве | YouTube | Code |
Птицеферма (с элементами ООП) | YouTube | Code |
Определение более длинного конца цепи | YouTube | - |
Прыжки по разрушающимся платформам | YouTube | - |
Сортировка квадратов упорядоченного массива (3 способа) (leetcode) | YouTube | Code |
Поиск пары непересекающихся отрезков | YouTube | Code |
Определение непрерывных интервалов для числового массива | YouTube | Code |
Поиск в массиве пары чисел с заданной суммой за O(n) | YouTube | Code |
Поиск k максимальных чисел в массиве за O(kn) | YouTube | Code |
Поиск пропущенного минимального положительного элемента в несортированном массиве за O(n) | YouTube | Code |
Два секретных Git-репозитория, посвященных Java-интервью | YouTube | Repo1 Repo2 |
Сократитель ссылок (Яндекс) | YouTube | Code |
Определение минимального произведения пары элементов несортированного массива за O(n) | YouTube | Code |
Возведение числа в степень (2 способа) (leetcode) | YouTube | Code |
Сортировка анаграмм | YouTube | Code |
Создаем deadlock | YouTube | Code |
Замена последовательных пробелов в строке одним за O(n) | YouTube | Code |
Как собрать Java-проект без JDK, Maven и Gradle | YouTube | Repo |
Сортировка слиянием (Merge sort) | YouTube | Code |
Стек с поддержкой определения минимального элемента за O(1) | YouTube | Code |
Рефакторинг кода из интервью 1 | YouTube | Code |
Кодирование строки | YouTube | Code |
Реверсирование последовательности (3 способа) | YouTube | Code |
Программист в кино в эпоху COVID | YouTube | Code |
LFU кэш (Least Frequently Used) (leetcode) | YouTube | Code |
Поиск элементов одного массива, отсутствующих в другом за O(n) | YouTube | Code |
Киномарафон | YouTube | Code |
Самодельный Stream с filter и map операциями | YouTube | Code |
Брутфорс пароля по хэшу и хэш-функции (Ozon) | YouTube | Code |
Упаковка товаров для доставки | YouTube | - |
Самодельный Stream 2: of, limit, skip, takeWhile, dropWhile, distinct, sorted, forEach, toList | YouTube | Code |
Определение оптимального времени покупки и продажи акций (2 решения) (leetcode) | YouTube | Code |
Разбиение здания на апартаменты | YouTube | Code |
Самодельный BlockingQueue (2 решения) | YouTube | Code |
Самодельный ThreadPoolExecutor | YouTube | Code |
Восстановление IP-адреса (leetcode) | YouTube | Code |
Определение лучшего среднего значения в массиве оценок (2 решения) | YouTube | Code |
Создание объекта по типу, указанному как generic (2 решения) | YouTube | Code |
Порядок инициализации полей и блоков Java-класса | YouTube | Code |
Самодельный LinkedList | YouTube | Code |
Самодельный ArrayList | YouTube | Code |
Самодельный HashMap | YouTube | Code |
Три задачи из интервью на парсинг файлов | YouTube | Code |
Робот двуногий шагающий (Яндекс) | YouTube | Code |
Самодельный HashSet | YouTube | Code |
Самодельный LinkedHashSet | YouTube | Code |
Неизменяемая нода и сумма ее вложенных элементов (3 способа) | YouTube | Code |
Топологическая сортировка. Нахождение цикла в графе | YouTube | Code |
Удаление N-го элемента с конца односвязного списка (leetcode) | YouTube | Code |
Самодельный Lock | YouTube | Code |
Печать строк в заданном порядке из разных потоков (leetcode) | YouTube | Code |
Многопоточное получение H₂O из водорода и кислорода (leetcode) | YouTube | Code |
Удаление элемента заданной величины из массива (leetcode) | YouTube | Code |
ДВЕ задачи про ДВЕри | YouTube | Code1 Code2 |
Добавление многопоточности при параллельных запросах в разные системы | YouTube | Code |
Распространение заражения между городами (2 решения) | YouTube | - |
Реверсирование порядка цифр в числе (2 решения) | YouTube | Code |
Поиск среди пар чисел значения, встречающегося однажды: магия XOR (2 решения) (leetcode) | YouTube | Code |
Удаление дубликатов в сортированном связном списке ч.I, II (leetcode) | YouTube | Code1 Code2 |
Генерация валидных комбинаций скобок (leetcode) | YouTube | Code |
Валидация записи числа регулярным выражением (leetcode) | YouTube | Code |
Проверка, является ли число степенью заданного числа (2 решения) (leetcode) | YouTube | Code |
Прокрутка односвязного списка (leetcode) | YouTube | Code |
Поиск подстроки в строке за O(N+M): алгоритм Бойера-Мура (2 решения) (leetcode) | YouTube | Code1 Code2 |
Задачи из интервью на написание SQL-запросов | YouTube | Code |
Поиск слова в матрице букв (leetcode) | YouTube | Code |
Сжатие строки (Яндекс) | YouTube | Code |
Самодельный Stack | YouTube | Code |
Выдача купюр банкоматом (Яндекс) | YouTube | - |
Поиск набора слов в матрице букв (2 решения) (leetcode) | YouTube | Code1 Code2 |
Поиск набора слов в матрице букв 2: префиксное дерево (leetcode) | YouTube | Code |
Поиск в строке наиболее длинной подстроки без повторений (leetcode) | YouTube | Code |
Сумма двух чисел без использования + и - (2 решения) (leetcode) | YouTube | Code |
Длина последнего слова в строке (3 решения) (leetcode) | YouTube | Code |
Парсинг списка строк в структуру данных (Яндекс) | YouTube | Code |
Перемещение нулей к концу массива (leetcode) | YouTube | Code |
Проверка правильности использования заглавных букв (2 решения) (leetcode) | YouTube | Code |
Цифровой корень (итеративная сумма цифр) числа (2 решения) (leetcode) | YouTube | Code |
Удаление дубликатов из сортированного массива, ч.I, II (leetcode) | YouTube | Code1 Code2 |
Определение размера окрестности для элементов массива чисел | YouTube | Code |
Сортировка Шелла (Shell sort) | YouTube | Code |
Размен минимальным количеством монет (2 решения) | YouTube | Code |
Замена всех '?' в строке, избегая повторяющихся последовательных символов (leetcode) | YouTube | Code |
Заказ фурнитуры: добавить пропущенный код | YouTube | Code |
Поиск в сортированном массиве количества элементов меньших заданного (3 решения) | YouTube | Code |
Факториал (4 решения) | YouTube | Code |
Вычисление среднего, медианы, моды, квартилей | YouTube | Code |
Обзор содержимого моих репозиториев | YouTube | |
Перемешивание массива: алгоритм тасования Фишера-Йетса | YouTube | Code |
Валидация скобочного выражения (leetcode) | YouTube | Code |
Объединение упорядоченных массивов в массив без дубликатов | YouTube | Code |
Каверзный finally / Каверзный stream: предсказать, что произойдет | YouTube | Code1 Code2 |
Как успеть посмотреть все обучающие ролики на YouTube (Ускорение выше 2х) | YouTube | - |
Генерация CV в PDF из Markdown и автоматизация взаимодействия с рекрутером | YouTube | Repo |
Перестановка пары цифр числа для получения максимального значения (leetcode) | YouTube | Code |
Бинарный поиск в упорядоченном массиве | YouTube | Code |
Поиск первой и последней позиции элемента в упорядоченном массиве (leetcode) | YouTube | Code |
Подсчет отрицательных чисел в сортированной матрице за O(N+M) (2 решения) (leetcode) | YouTube | Code |
Избавление от дублирования в тестах посредством перехода к параметризованным тестам | YouTube | Code |
Поиск пропущенных чисел в массиве без использования дополнительной памяти | YouTube | Code |
Поиск следующей ноды для заданной ноды бинарного дерева поиска | YouTube | Code |
Задачи на логику из BA-интервью | YouTube | - |
Поиск позиций больших групп в строке (leetcode) | YouTube | Code |
Подсчет способов подъема по лестнице (leetcode) | YouTube | Code |
Преобразование римской записи числа в арабскую (leetcode) | YouTube | Code |
Преобразование арабской записи числа в римскую (leetcode) | YouTube | Code |
Поиск анаграммы (2 решения) (leetcode) | YouTube | Code |
Поиск наиболее длинного слова из словаря, которое можно сложить из заданного набора символов | YouTube | Code |
Определение простых делителей, меньших заданного числа. Решето Эратосфена (4 решения) | YouTube | Code |
Поиск для заданного элемента массива k соседних элементов, ближайших к нему по величине (Яндекс) | YouTube | Code |
Поиск максимальной суммы двух элементов в неупорядоченном списке за O(n) | YouTube | Code |
Инкремент большого целого, представленного в виде массива цифр (leetcode) | YouTube | Code |
Определение года с максимальным количеством живущих людей (2 решения) | YouTube | Code |
Обращение строки символов | YouTube | Code |
Вывод уникальных значений для коллекции двойной вложенности (2 решения) | YouTube | Code |
Паспортный контроль (2 решения) | YouTube | Code |
Вращение матрицы (hackerrank) | YouTube | Code |
Подсчет единиц в бинарной записи числа (leetcode) | YouTube | Code |
Получение одной строки из другой за одно изменение | YouTube | Code |
Проверка наличия дубликатов в несортированном массиве (2 решения) | YouTube | Code |
Самодельные equals() и hashCode() | YouTube | Code1 Code2 |
LFU кэш 2 (Least Frequently Used) (leetcode) | YouTube | Code |
Слияние k упорядоченных массивов быстрее, чем за kN*log(kN) | YouTube | Code |
Водительский экзамен | YouTube | - |
Рефакторинг Spring Boot сервиса из тестового задания | YouTube | Repo |
Поиск маршрута спуска золотоискателя с горы | YouTube | Code |
Счастливое число (2 решения) (leetcode) | YouTube | Code |
Spring Boot приложение с использованием PostgreSQL JSONB | YouTube | Repo |
Настройка Win OS для разработки на Java | YouTube | Repo |
Realtime анализатор спектра звука на Java | YouTube | Repo |
Как найти утерянный коммит: Git reflog | YouTube | - |
Функциональные тесты REST API с помощью Spock | YouTube | - |
Вавилонский метод вычисления квадратного корня (leetcode) | YouTube | Code |
Определение высоты бинарного дерева | YouTube | Code |
Dummy, Fake, Stub, Spy, Mock | YouTube | - |
Нагрузочное тестирование Spring Boot сервиса с помощью Gatling | YouTube | Repo |
Отражение бинарного дерева | YouTube | Code |
Web crawler (парсер сайта) на Java | YouTube | Repo |
Как скачать видео с Boosty | YouTube | - |
Декодирование шифра Цезаря | YouTube | Code |
Поиск НОК для набора чисел | YouTube | Code |
Число Фробениуса и задача Чикена МакНаггетса | YouTube | Code |
Java interview Q & A collection | YouTube | Repo |
Выдача купюр банкоматом 2 (Яндекс) | YouTube | Code1 Code2 |
Поиск эквивалентных вершин бинарного дерева с макс. размером поддеревьев | YouTube | Code |
Как выпустить релиз на | YouTube | Repo |
Редакционное расстояние. Получение одной строки из другой за одно изменение 2 | YouTube | Code |
Обзор плейлистов на канале | YouTube | - |
AI чат с помощью Spring AI и Ollama | YouTube | Repo |
7 классических задач (музыкальный выпуск) | YouTube | - |
Решение дифф. уравнений в ЧП на Java численно | YouTube | Repo |
5 сортировок (музыкальный выпуск) | YouTube | - |
Матрица смежности. Распространение заражения между городами 2 | YouTube | Code |
Сборка и запуск Java-проекта без помощи IDE и средств сборки | YouTube | - |
Три типа аспектов на примере AspectJ | YouTube | Repo |
Actions: workflows, coverage, badges | YouTube | Repo1 Repo2 Repo3 Repo4 |
Самодельный ArrayList 2 | YouTube | Code |
Title | YouTube video link |
---|---|
Ревью кода из интервью 1 | YouTube |
Ревью кода из интервью 2 | YouTube |
Ревью кода из интервью 3 | YouTube |
Ревью кода из интервью 4 (LIVE) | YouTube |
Ревью кода из интервью 5 (LIVE) | YouTube |
Ревью кода из интервью 6 (LIVE) | YouTube |
Title | YouTube video link |
---|---|
Прохождение практического теста "средний" по Java на hh.ru | YouTube |
Прохождение практического теста "продвинутый" по Java на hh.ru | YouTube |
Прохождение теста "средний" по Git на hh.ru | YouTube |
Прохождение теста "базовый" по Linux на hh.ru | YouTube |
Прохождение теста "базовый" по Docker на hh.ru | YouTube |
Прохождение теста "базовый" по ООП на hh.ru | YouTube |
Прохождение теоретического теста "базовый" по Java на hh.ru | YouTube |
Прохождение теста "средний" по ООП на hh.ru | YouTube |
Прохождение теста "продвинутый" по ООП на hh.ru | YouTube |
Check this repo to get materials for preparation to Java verbal interview