Advertisement
BrainRTP

Java middle themes

Feb 5th, 2024
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.02 KB | Science | 0 0
  1. 1)
  2. Java:
  3. - SOLID
  4. - паттерны проектирования
  5. - Все методы Object
  6. - GC
  7. - Exceptions
  8.  
  9. Java Collections:
  10. - ArrayList (алг. сложность чтения, вставки в начало-середину-конец, какие минусы и плюсы?)
  11. - LinkedList
  12. - HashSet
  13. - TreeSet
  14. - EnumSet
  15. - HashMap
  16. - EnumMap
  17. - TreeMap
  18. - Queue
  19. - Stack
  20.  
  21. Как хешмапа может балансировать любые объекты не Comparable
  22. Если хешкод отличается, то и объекты отличаются
  23.  
  24. Java Threadsafe Collections
  25. - Synchronized collections
  26. Коллекции, в которых все методы - synchronized
  27.  
  28. - Concurrent collections
  29. ConcurrentHashMap
  30. Здесь синхронизации происходит не на уровне методов, а на уровне ноды, с которой мы работаем
  31.  
  32. CopyOnWriteArrayList
  33. Копирование внутреннего массива при каждом изменении списка
  34.  
  35. Java Multithreading:
  36. - Примитивы синхронизации
  37. synchronized, lock, concurrent & synchronized collections, Atomic, CountDownLatch, Semaphore, CyclicBarrier, Exchanger
  38.  
  39. - Race Condition (Гонки)
  40.  
  41. - Future, CompletableFuture
  42. Future возвращает результат асинхронного вычисления. Получить его можно с помощью метода get(). Если результата нет, метод блокирует текущий поток до его появления.
  43. CompletableFuture реализует Future и CompletionStage. Позволяет сделать с результатом что-то "потом" с помощью колбеков, комбинировать шаги выполнения и тд.
  44.  
  45. - volatile
  46. Данный модификатор гарантирует атомарность чтения/записи переменной.
  47. Значение не кешируется в стеке и будет доступно всем потокам.
  48.  
  49. - Atomic, CAS (weak)
  50. Atomic позволяет работать со значением без блокировки и синхронизации. Атомарность операций достигается с помощью compare-and-swap
  51. CAS это инструкция, которая сравнивает значения и обновляет только в том случае, если текущее равно ожидаемому.
  52.  
  53. - happens before
  54. Вторая операция знает об результате первой
  55.  
  56. - deadlock
  57. Взаимная блокировка потоками друг друга
  58.  
  59. - Lock, ReadWriteLock, ReentrantLock
  60. Интефейс, позволяющий работать с монитором с помощью методов без использования synchronized.
  61. ReadWriteLock содержит пару локов, которые используются только для чтения и только для записи соответственно.
  62. ReentrantLock позволяет одному и тому же потоку вызывать метод lock, даже если он его вызывал ранее, без освобождения блокировки.
  63.  
  64. Java Memory Model:
  65. - Heap & stack
  66. - Типы ссылок
  67.  
  68. Структуры данных:
  69. - Красночерное дерево
  70. - Бинарное дерево
  71.  
  72. SQL:
  73. - ACID
  74. - Репликация - несколько баз данных на разных машинах
  75. - Шардирование - разбиение базы на уникальные части
  76. - пагинирование - разбитие внутри одной машины
  77. - Какие индексы бывают?
  78.  
  79. Srping:
  80. - Чем отличается Spring от Spring Boot
  81. - Что такое автоконфигурации
  82. - Отличие Spring Mvc и Spring Webflux
  83. - Для чего нужны lazy bean
  84. - Что лучше: autowired в конструктор или в поля
  85. - Как работает @Transactional
  86. - Скоупы бинов
  87. - Жизненный цикл бина
  88. - Bean Definition
  89. - Spring Boot как создать стартер
  90. - Proxy - Cglib vs JDK proxy
  91.  
  92. Брокеры сообщений:
  93. - Kafka
  94. Партиции это копии данных в топике, нужны чтобы если чето отвалится, то данные не пропадут
  95.  
  96. - Rabbit MQ
  97.  
  98. -----------
  99. 2)
  100. https://github.com/qcha/JBook/blob/master/collections/map/intro.md
  101.  
  102. -----------
  103. 3)
  104. паттерны проектирования:
  105. https://refactoring.guru/ru/design-patterns
  106.  
  107. -----------
  108. 4)
  109. kafka + k8s.
  110.  
  111. Kafka книга:
  112. Apache Kafka
  113. Нархид Н.И
  114.  
  115. -----------
  116. 5)
  117. цикл статей инексы PostgreSQL:
  118. https://habr.com/ru/companies/postgrespro/articles/326096/
  119.  
  120. -----------
  121. 6)
  122. ConmpletableFuture
  123. https://habr.com/ru/articles/784144/
  124.  
  125. -----------
  126. 7)
  127. Проблема N+1 в БД (hibernate + как он её решает)
  128. -----------
  129.  
  130. 8)
  131. https://java-online.ru/java-thread.xhtml
  132. Имба. Очень простым языком, понятно и полноценно написано про многопоточку
  133. -----------
  134.  
  135. 9)
  136. Stream API
  137. htps://struchkov.dev/blog/ru/java-stream-api/
  138. Имба. Очень подробно расписано
  139. -----------
  140.  
  141. 11)
  142. Leetcode 75 задач
  143. https://leetcode.com/studyplan/leetcode-75/
  144. -----------
  145.  
  146. 10)
  147. А дальше еще дополнительно нужно учить ваш основной фреймворк, в моем случае это Spring.
  148. Каких-либо материалов по нему не смогу дать т.к большая часть по наитию искалась в гугле
Tags: Java
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement