Роадмап подготовки к Java собеседованиям

Роадмап подготовки к Java собеседованиям

https://t.me/backend_interviewer

Цель роадмапа - предоставить список тем и источников для быстрой подготовки к собеседованиям уровня Middle/Senior.

Роадмап не ставит целью предоставить развернутый список вопросов и ответов с собеседований. Потому что собеседование это не экзамен. Нет смысла заучивать ответы. Нужно понимать суть.

Содержание:


Java

Содержание:


Архитектура JVM

  • Области памяти
  • Bytecode, JIT, оптимизации
  • Загрузка классов
  • Виды ссылок
  • Структура объектов

https://www.freecodecamp.org/news/jvm-tutorial-java-virtual-machine-architecture-explained-for-beginners/

https://blog.jamesdbloom.com/JVMInternals.html

https://www.azul.com/blog/understanding-java-compilation-from-bytecodes-to-machine-code/

https://www.ibm.com/docs/en/sdk-java-technology/8?topic=compiler-how-jit-optimizes-code

https://www.baeldung.com/java-memory-layout

https://shipilev.net/jvm/objects-inside-out/


Сборка мусора

  • Виды
  • Механизм работы
  • Настройка параметров
  • Логи, метрики
  • Анализ HeadDump и ThreadDump
  • Ликвидация утечек

https://www.freecodecamp.org/news/garbage-collection-in-java-what-is-gc-and-how-it-works-in-the-jvm/

https://dataintellect.com/blog/low-latency-java-optimisation-through-garbage-collector-tuning/

https://sematext.com/blog/java-garbage-collection-logs/

https://blog.gceasy.io/simple-effective-g1-gc-tuning-tips/

https://sematext.com/blog/java-memory-leaks/


Классы

  • Reflection
  • Annotation Processing
  • Classloaders
  • Serialization
  • Типы ссылок
  • Boxing, unboxing
  • Порядок инициализации

https://www.baeldung.com/java-custom-annotation

https://www.baeldung.com/java-classloaders

https://www.guvi.in/blog/guide-for-serialization-in-java/

https://antkorwin.com/concurrency/weakreference.html

https://thospfuller.com/2024/03/12/java-autoboxing-performance/


Коллекции

  • Внутреннее устройство
  • Fail-fast, fail-safe
  • Потокобезопасные коллекции
  • equals/hashCode контракт, коллизии

https://struchkov.dev/blog/ru/java-collection-framework/

https://www.baeldung.com/java-fail-safe-vs-fail-fast-iterator

https://jackiewicz.hashnode.dev/understanding-hashing-and-collisions-in-java-collections-the-role-of-hashcode-and-equals


Дженерики

  • Type erasure
  • Wildcards: extends, super, PECS

https://dev.mo4tech.com/the-most-complete-guide-to-java-generics.html


Исключения 

  • Checked/unchecked
  • try-catch-finally

https://stackabuse.com/exception-handling-in-java-a-complete-guide-with-best-and-worst-practices/


Стримы

  • Внутреннее устройство
  • Паралельные стримы, ForkJoinPool

https://struchkov.dev/blog/ru/java-stream-api/

https://www.baeldung.com/java-fork-join


Многопоточность

  • Thread, Runnable, Callable, Future, CompletableFuture
  • synchronized vs Lock
  • volatile vs Atomic
  • CAS, FAA
  • Semaphore, CountDownLatch, CyclicBarrier, Phaser, Exchanger
  • Deadlock, Livelock, Race condition
  • JMM
  • happens-before

https://shameekagarwal.github.io/posts/java-multithreading/

https://jenkov.com/tutorials/java-concurrency/index.html

https://shipilev.net/blog/2014/jmm-pragmatics/


Spring

Содержание:


Spring Core

  • Жизненный цикл бинов
  • Scope бинов
  • Способы внедрения бинов
  • DI vs IoC
  • ApplicationContext vs BeanFactory
  • BeanPostProcessor

https://dev.to/rahul_talatala/spring-core-fundamentals-a-beginner-guide-3daa

https://habr.com/ru/articles/720794/


Spring AOP

  • Join Point, Advice, Pointcut
  • Типы Advice
  • Spring AOP vs AspectJ
  • JDK dynamic proxy vs CGLIB

https://www.appsdeveloperblog.com/a-guide-to-spring-boot-aop-to-record-user-operations/

https://docs.spring.io/spring-framework/reference/core/aop/proxying.html


Spring Data

  • JPA
  • Lazy/Eager загрузка
  • N+1 проблема
  • Hibernate кэш
  • Merge vs persist
  • Paging, sorting, native queries, hints

https://www.baeldung.com/hibernate-save-persist-update-merge-saveorupdate

https://blog.frankel.ch/digging-hibernate-query-cache/

https://dev.to/easycat/zoopark-hibernate-n1-zaprosov-ili-kak-nakormit-zhadnogho-bieghiemota-26nn


Spring Transaction

  • @Transactional
  • Propagation, Isolation, Rollback

https://www.marcobehler.com/guides/spring-transaction-management-transactional-in-depth


Spring Web

  • Обработка ошибок
  • OpenAPI
  • MVC vs Webflux
  • Jackson
  • SSE
  • Websocket

https://habr.com/ru/articles/565698/

https://habr.com/ru/articles/716544/


Spring Security

  • Basic, JWT, LDAP, OAuth2
  • CSRF, CORS
  • SecurityFilterChain

https://www.marcobehler.com/guides/spring-security

https://syskool.com/cors-csrf-and-secure-headers-in-spring-boot/


Spring Boot

  • @AutoConfiguration, @ConditionalOn
  • Properties, профили
  • Actuator
  • Starters

https://www.marcobehler.com/guides/spring-boot-autoconfiguration

https://www.baeldung.com/spring-boot-custom-starter


Spring Cloud

  • Discovery, Gateway, Load balance, Config
  • Resilience
  • Tracing

https://habr.com/ru/articles/793550/

https://www.baeldung.com/spring-cloud-sleuth-single-application


SQL

  • Нормализация, денормализация
  • ACID
  • Уровни изоляций
  • Типы индексов, когда какой тип выбрать
  • Explain

https://habr.com/ru/articles/555920/

https://ru.wikipedia.org/wiki/Уровень_изолированности_транзакций

https://neon.com/postgresql/postgresql-indexes

https://habr.com/ru/articles/203320/


NoSQL

  • Типы и сравнение (Key-Value, Document, Column-oriented, Graph)
  • BASE vs ACID
  • SQL vs NoSQL
  • Механизмы репликации, шардирования и отказоустойчивости

https://www.designgurus.io/course-play/grokking-the-system-design-interview/doc/acid-vs-base-properties-in-databases

https://www.educative.io/blog/database-scalability-sharding-partitioning-replication


Apache Kafka

  • Компоненты (Broker, Producer, Consumer, Topic, Partition, Consumer Group)
  • Гарантии доставки
  • Transactional outbox

https://docs.arenadata.io/ru/ADStreaming/current/concept/architecture/kafka/delivery_guarantees.html

https://habr.com/ru/companies/lamoda/articles/678932/


Docker, Kubernetes

  • CI/CD
  • Docker
  • Kubernetes (Pod, Deployment, Service, ConfigMap, Secret)
  • Мониторинг (Prometheus, Grafana, ELK)

Паттерны проектирования, ООП, SOLID

  • GoF
  • Статический/динамический полиморфизм
  • Агрегация/композиция
  • Какие паттерны используются в Spring
  • Какие паттерны использовали у себя

https://bool.dev/blog/detail/gof-design-patterns

https://raygun.com/blog/oop-concepts-java/

https://solidbook.vercel.app/


Алгоритмы и структуры данных

  • Констнатная, логарифмическая, линейная, квадратичная, экспоненциальная, факториальная сложности
  • Сравнение сложности вставки/поиска для массива, списка, стека, очереди, множества, хеш-таблицы, дерева
  • Сортировка, бинарный поиск
  • Обход в глубину/ширину
  • Динамическое программирование

https://t.me/backend_interviewer/45

https://t.me/backend_interviewer/53

https://t.me/backend_interviewer/63

https://cp-algorithms.com/dynamic_programming/intro-to-dp.html


Системный дизайн

  • DNS, Load Balancer, API Gateway, CDN, Forward/Reverse Proxy, Caching, Partitioning, Replication, Messaging Systems, Microservices, SQL/NoSQL
  • CAP
  • Stateless vs Statefull

https://bytebytego.com/courses/system-design-interview/scale-from-zero-to-millions-of-users


Soft skills

  • Методологии разработки
  • Умение объяснять архитектурные решения, trade-off’ы, помогать коллегам
  • Презентация опыта: STAR техника, причины использования тех или иных решений
  • Вопросы интервьюеру

Контакты

Личка @principal_swe

Канал @backend_interviewer

Report Page