Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1)
- Java:
- - SOLID
- - паттерны проектирования
- - Все методы Object
- - GC
- - Exceptions
- Java Collections:
- - ArrayList (алг. сложность чтения, вставки в начало-середину-конец, какие минусы и плюсы?)
- - LinkedList
- - HashSet
- - TreeSet
- - EnumSet
- - HashMap
- - EnumMap
- - TreeMap
- - Queue
- - Stack
- Как хешмапа может балансировать любые объекты не Comparable
- Если хешкод отличается, то и объекты отличаются
- Java Threadsafe Collections
- - Synchronized collections
- Коллекции, в которых все методы - synchronized
- - Concurrent collections
- ConcurrentHashMap
- Здесь синхронизации происходит не на уровне методов, а на уровне ноды, с которой мы работаем
- CopyOnWriteArrayList
- Копирование внутреннего массива при каждом изменении списка
- Java Multithreading:
- - Примитивы синхронизации
- synchronized, lock, concurrent & synchronized collections, Atomic, CountDownLatch, Semaphore, CyclicBarrier, Exchanger
- - Race Condition (Гонки)
- - Future, CompletableFuture
- Future возвращает результат асинхронного вычисления. Получить его можно с помощью метода get(). Если результата нет, метод блокирует текущий поток до его появления.
- CompletableFuture реализует Future и CompletionStage. Позволяет сделать с результатом что-то "потом" с помощью колбеков, комбинировать шаги выполнения и тд.
- - volatile
- Данный модификатор гарантирует атомарность чтения/записи переменной.
- Значение не кешируется в стеке и будет доступно всем потокам.
- - Atomic, CAS (weak)
- Atomic позволяет работать со значением без блокировки и синхронизации. Атомарность операций достигается с помощью compare-and-swap
- CAS это инструкция, которая сравнивает значения и обновляет только в том случае, если текущее равно ожидаемому.
- - happens before
- Вторая операция знает об результате первой
- - deadlock
- Взаимная блокировка потоками друг друга
- - Lock, ReadWriteLock, ReentrantLock
- Интефейс, позволяющий работать с монитором с помощью методов без использования synchronized.
- ReadWriteLock содержит пару локов, которые используются только для чтения и только для записи соответственно.
- ReentrantLock позволяет одному и тому же потоку вызывать метод lock, даже если он его вызывал ранее, без освобождения блокировки.
- Java Memory Model:
- - Heap & stack
- - Типы ссылок
- Структуры данных:
- - Красночерное дерево
- - Бинарное дерево
- SQL:
- - ACID
- - Репликация - несколько баз данных на разных машинах
- - Шардирование - разбиение базы на уникальные части
- - пагинирование - разбитие внутри одной машины
- - Какие индексы бывают?
- Srping:
- - Чем отличается Spring от Spring Boot
- - Что такое автоконфигурации
- - Отличие Spring Mvc и Spring Webflux
- - Для чего нужны lazy bean
- - Что лучше: autowired в конструктор или в поля
- - Как работает @Transactional
- - Скоупы бинов
- - Жизненный цикл бина
- - Bean Definition
- - Spring Boot как создать стартер
- - Proxy - Cglib vs JDK proxy
- Брокеры сообщений:
- - Kafka
- Партиции это копии данных в топике, нужны чтобы если чето отвалится, то данные не пропадут
- - Rabbit MQ
- -----------
- 2)
- https://github.com/qcha/JBook/blob/master/collections/map/intro.md
- -----------
- 3)
- паттерны проектирования:
- https://refactoring.guru/ru/design-patterns
- -----------
- 4)
- kafka + k8s.
- Kafka книга:
- Apache Kafka
- Нархид Н.И
- -----------
- 5)
- цикл статей инексы PostgreSQL:
- https://habr.com/ru/companies/postgrespro/articles/326096/
- -----------
- 6)
- ConmpletableFuture
- https://habr.com/ru/articles/784144/
- -----------
- 7)
- Проблема N+1 в БД (hibernate + как он её решает)
- -----------
- 8)
- https://java-online.ru/java-thread.xhtml
- Имба. Очень простым языком, понятно и полноценно написано про многопоточку
- -----------
- 9)
- Stream API
- htps://struchkov.dev/blog/ru/java-stream-api/
- Имба. Очень подробно расписано
- -----------
- 11)
- Leetcode 75 задач
- https://leetcode.com/studyplan/leetcode-75/
- -----------
- 10)
- А дальше еще дополнительно нужно учить ваш основной фреймворк, в моем случае это Spring.
- Каких-либо материалов по нему не смогу дать т.к большая часть по наитию искалась в гугле
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement