Java

TL;DR

Trilha Java Senior organizada em 18 galhos progressivos, de fundamentos da linguagem até produção cloud-native — passando por JVM, concorrência, desktop (Swing/JavaFX), Jakarta EE, Spring, persistência, segurança, testes, mensageria, microservices e certificação OCP. Cada galho é um conjunto de notas atômicas em 3 fases de aprendizado (Iniciado/Adepto/Magus), com seção “Em entrevista” em inglês. A trilha cresce um galho por vez; só os galhos publicados têm link ativo abaixo.

A estante de Java cobre tudo o que um desenvolvedor senior precisa dominar no ecossistema — linguagem e JVM, frameworks de backend (Jakarta EE, Spring), interfaces desktop, plataforma distribuída e produção. O material está sendo refatorado dos troncos monolíticos originais (Java Fundamentals, Java Concurrency, Spring Boot, Spring Data JPA, Spring Security, etc.) para galhos temáticos de notas atômicas, no mesmo padrão das trilhas Node e IA.

Galhos da trilha

Núcleo da linguagem

  1. Linguagem e sintaxe moderna — tipos, OOP, exceções, generics, records, sealed classes, pattern matching, evolução Java 8→25
  2. Collections, Streams e Programação Funcional — Collections Framework, Stream API, lambdas e interfaces funcionais, Optional, Date/Time (java.time), I/O moderno (java.nio.file)
  3. JVM por dentro — memória de runtime, GC (G1/ZGC/Shenandoah), JIT e tiered compilation, classloading, bytecode, módulos (JPMS), diagnóstico (JFR/jcmd) e tuning
  4. Concorrência e paralelismo — Memory Model, locks, atomics, executors, CompletableFuture, Virtual Threads/Loom, structured concurrency

Interfaces desktop

  1. Swing — componentes e containers, layout managers, modelo de eventos, EDT/SwingWorker, MVC/models, Look & Feel, custom painting, estado atual da API
  2. JavaFX — scene graph, FXML/Scene Builder, properties e binding, CSS, Task/Service e threading, MVVM, jlink/jpackage, estado do projeto (OpenJFX/Gluon)

Fundamentos enterprise e Spring

  1. Jakarta EE — spec vs implementação, transição javax→jakarta, Servlet, CDI, JAX-RS, Bean Validation, JPA spec, JTA, legado EJB, estado atual da plataforma
  2. Spring Core e Boot — IoC/DI, beans e escopos, AOP/proxies, configuração e profiles, conditional/auto-configuration, eventos do contexto, fundamentos do Boot, Actuator
  3. Web e APIs REST — Spring MVC e o pipeline do DispatcherServlet, REST controllers, content negotiation, validação na borda, exception handling (@ControllerAdvice, Problem Details), OpenAPI, HATEOAS, versionamento, clientes HTTP
  4. Persistência de dados — JPA/Hibernate, o persistence context, mapeamento e relacionamentos, fetch strategies e o N+1, Spring Data repositories e consultas, paginação, transações operacionais, locking, caching e migrations
  5. Programação Reativa — o modelo reativo na JVM: Reactive Streams, Project Reactor (Mono/Flux e operadores), schedulers e backpressure, Spring WebFlux e WebClient, R2DBC, e o confronto honesto reativo vs Virtual Threads
  6. Segurança — Spring Security e o filter chain, autenticação e password encoding, autorização URL-based e method-level, JWT, OAuth2/OIDC, CSRF/CORS, session management, security headers e OWASP no contexto Java
  7. Testes — a pirâmide e o stack moderno, JUnit 5/AssertJ/Mockito, os slices do Spring Boot, Testcontainers e integração, testes de segurança/async/reativo, mutation testing, performance, fitness functions e contract testing

Plataforma distribuída e produção

  1. Mensageria e eventos — o modelo de mensageria e as garantias de entrega, Spring Kafka e RabbitMQ, eventos in-process, padrões de confiabilidade (idempotência, outbox, DLQ, exactly-once), arquitetura event-driven (saga, event sourcing, CQRS), mensageria reativa, observabilidade e o contraste com gRPC
  2. Build, tooling e ecossistema — Maven e Gradle (modelo, lifecycle/tasks, performance), gestão de dependências (resolução transitiva, conflitos, BOM), multi-módulo, distribuições do JDK e licenciamento, annotation processing (Lombok/MapStruct), empacotamento, quality gates no build e cadeia de suprimentos (reproducible builds, SBOM, Maven Central)
  3. Microservices e sistemas distribuídos — o modelo e a tese honesta (microservices vs monólito modular), Spring Cloud (service discovery, gateway, config centralizado), resiliência com Resilience4j (circuit breaker, retry, bulkhead, rate limiter, time limiter), comunicação síncrona (OpenFeign/@HttpExchange), segurança entre serviços, tracing distribuído (Micrometer Tracing/OpenTelemetry), consistência (CAP/PACELC) e service mesh
  4. Cloud-native e produção — levar o jar a produção num cluster: empacotamento em imagem (Dockerfile multi-stage/layered jar, distroless, Buildpacks, Jib), a JVM ciente do container (cgroup, MaxRAMPercentage), GraalVM Native Image e Spring AOT, o contrato com o Kubernetes (probes, config, graceful shutdown), observabilidade de operação (Micrometer/Prometheus/Grafana, OpenTelemetry Collector e sampling, logs estruturados), profiling sob carga e continuous profiling, CI/CD e a decisão native vs JVM

Certificação

  1. Certificação Java OCP — guia das provas OCP Java SE 21 (1Z0-830) e 25 (1Z0-831): os 10 domínios oficiais mapeados às notas dos galhos 1-4, o catálogo de pegadinhas clássicas, formato e logística da prova, e estratégia de estudo — guia da prova OCP Java SE 21, mapeado aos galhos de linguagem

Referência

Veja também