Pular para o conteúdo

Trilha de estudo

Trilha Java: tudo o que estudar, tópico por tópico

Avaliação abrangente de Java cobrindo fundamentos da linguagem, APIs principais, concorrência, internos da JVM, frameworks e recursos modernos do Java.

Resposta curta

Para aprender Java, percorra 6 módulos e 33 tópicos na ordem em que um apoia o próximo. Comece por Fundamentos da Linguagem e siga para Java Essencial e Concorrência. Use o mapa como checklist, ou meça seu nível e estude só o que falta.

6
módulos
33
tópicos
45
min para avaliar

O que você vai estudar

Os tópicos estão agrupados por módulo. Abra um para ver os objetivos e os conceitos-chave.

1 · Fundamentos da Linguagem5 tópicos
  • Tipos e Operadores

    Tipos primitivos, classes wrapper, autoboxing, promoção de tipos e precedência de operadores

    Objetivos

    • Distinguir tipos primitivos de classes wrapper
    • Prever promoção de tipos e comportamento de autoboxing

    Conceitos-chave

    • tipos primitivos
    • classes wrapper
    • autoboxing
    • promoção de tipos
    • precedência de operadores
    • palavra-chave var
  • Fluxo de Controle

    If/else, switch expressions, loops, enhanced for, pattern matching e labeled breaks

    Objetivos

    • Utilizar switch expressions modernos corretamente
    • Prever o fluxo de execução de loops e ramificações

    Conceitos-chave

    • switch expressions
    • pattern matching
    • enhanced for
    • labeled break
    • avaliação de curto-circuito
  • Fundamentos de OOP

    Classes, interfaces, herança, polimorfismo, sealed classes e records

    Objetivos

    • Aplicar herança e polimorfismo corretamente
    • Escolher entre interfaces, classes abstratas e records

    Conceitos-chave

    • herança
    • polimorfismo
    • interfaces
    • classes abstratas
    • sealed classes
    • records
    • encapsulamento
  • Tratamento de Exceções

    Exceções checked vs unchecked, try-with-resources, exceções personalizadas e boas práticas

    Objetivos

    • Distinguir exceções checked de unchecked
    • Utilizar try-with-resources para gerenciamento seguro de recursos

    Conceitos-chave

    • exceções checked
    • exceções unchecked
    • try-with-resources
    • exceções personalizadas
    • encadeamento de exceções
    • AutoCloseable
  • Documentação

    Sintaxe Javadoc, tags, package-info, geração de documentação HTML e exemplos de código na documentação

    Objetivos

    • Escrever Javadoc completo com tags apropriadas para APIs públicas
    • Gerar e navegar documentação HTML a partir do código-fonte

    Conceitos-chave

    • sintaxe Javadoc
    • tag @param
    • tag @return
    • tag @throws
    • package-info.java
    • geração de documentação HTML
    • exemplos de código na documentação
    • @see e @link
2 · Java Essencial5 tópicos
  • Framework de Collections

    Implementações de List, Set e Map, iteração, Comparable/Comparator e utilitário Collections

    Objetivos

    • Escolher a coleção correta para um determinado cenário
    • Compreender a complexidade de tempo das operações comuns

    Conceitos-chave

    • ArrayList
    • LinkedList
    • HashMap
    • TreeMap
    • HashSet
    • Comparable
    • Comparator
    • utilitário Collections
  • Generics

    Parâmetros de tipo, tipos limitados, wildcards, erasure de tipos e métodos genéricos

    Objetivos

    • Aplicar PECS para uso de wildcards
    • Explicar as implicações do erasure de tipos

    Conceitos-chave

    • parâmetros de tipo
    • tipos limitados
    • wildcards upper/lower
    • erasure de tipos
    • métodos genéricos
    • princípio PECS
  • I/O e NIO

    Streams, readers/writers, Path API, channels, buffers e monitoramento de arquivos

    Objetivos

    • Escolher entre IO e NIO para diferentes casos de uso
    • Utilizar a Path API para operações modernas com arquivos

    Conceitos-chave

    • InputStream/OutputStream
    • Reader/Writer
    • BufferedReader
    • Classe Files (NIO)
    • Path API
    • Channels e Buffers
    • try-with-resources
    • serialização
  • Strings e Texto

    Imutabilidade de String, StringBuilder, text blocks, String pool e formatação

    Objetivos

    • Explicar a imutabilidade de String e o comportamento do pool
    • Escolher entre String e StringBuilder

    Conceitos-chave

    • imutabilidade de String
    • String pool
    • StringBuilder
    • text blocks
    • String.format
    • intern()
  • Programação Funcional

    Expressões lambda, Stream API, interfaces funcionais, referências a métodos e Optional

    Objetivos

    • Escrever pipelines de Stream fluentes com operações terminais adequadas
    • Escolher entre estilo imperativo e funcional para legibilidade e desempenho

    Conceitos-chave

    • expressões lambda
    • Stream API
    • interfaces funcionais
    • referências a métodos
    • classe Optional
    • Collectors
    • streams paralelos
    • funções puras
3 · Concorrência4 tópicos
  • Fundamentos de Threads

    Ciclo de vida de threads, Runnable, Callable, ExecutorService e pools de threads

    Objetivos

    • Criar e gerenciar threads usando ExecutorService
    • Explicar os estados do ciclo de vida de threads

    Conceitos-chave

    • ciclo de vida de threads
    • Runnable
    • Callable
    • ExecutorService
    • pools de threads
    • Future
  • Synchronized e Locks

    Palavra-chave synchronized, ReentrantLock, ReadWriteLock, prevenção de deadlock e volatile

    Objetivos

    • Identificar e prevenir cenários de deadlock
    • Escolher entre synchronized e locks explícitos

    Conceitos-chave

    • synchronized
    • ReentrantLock
    • ReadWriteLock
    • volatile
    • deadlock
    • ordenação de locks
    • happens-before
  • Coleções Concorrentes

    ConcurrentHashMap, CopyOnWriteArrayList, BlockingQueue e variáveis atômicas

    Objetivos

    • Selecionar a coleção concorrente correta para um cenário
    • Explicar CAS e abordagens lock-free

    Conceitos-chave

    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • BlockingQueue
    • AtomicInteger
    • operações CAS
    • algoritmos lock-free
  • CompletableFuture

    Composição assíncrona, thenApply/thenCompose, tratamento de exceções e combinação de futures

    Objetivos

    • Compor pipelines assíncronos com CompletableFuture
    • Tratar erros em cadeias assíncronas

    Conceitos-chave

    • CompletableFuture
    • thenApply
    • thenCompose
    • allOf
    • exceptionally
    • pipelines assíncronos
4 · JVM e Desempenho4 tópicos
  • Modelo de Memória da JVM

    Heap, stack, metaspace, áreas de memória, JMM happens-before e vazamentos de memória

    Objetivos

    • Descrever as áreas de memória da JVM e suas funções
    • Identificar causas comuns de vazamentos de memória

    Conceitos-chave

    • heap
    • stack
    • metaspace
    • geração young/old
    • JMM
    • happens-before
    • vazamentos de memória
  • Coleta de Lixo

    Algoritmos de GC, G1, ZGC, Shenandoah, flags de tuning e análise de logs de GC

    Objetivos

    • Escolher um algoritmo de GC para diferentes cargas de trabalho
    • Interpretar logs de GC para diagnosticar problemas

    Conceitos-chave

    • Serial GC
    • Parallel GC
    • G1
    • ZGC
    • Shenandoah
    • flags de tuning de GC
    • análise de logs de GC
  • Profiling e Otimização

    JFR, async-profiler, heap dumps, thread dumps e micro-benchmarking com JMH

    Objetivos

    • Utilizar ferramentas de profiling para encontrar gargalos de desempenho
    • Escrever benchmarks JMH corretos

    Conceitos-chave

    • JFR
    • async-profiler
    • heap dump
    • thread dump
    • JMH
    • flame graphs
    • profiling de alocação
  • Carregamento de Classes

    Hierarquia de ClassLoader, modelo de delegação, loaders personalizados e sistema de módulos (JPMS)

    Objetivos

    • Explicar o modelo de delegação do classloader
    • Compreender os limites de módulos do JPMS

    Conceitos-chave

    • bootstrap classloader
    • application classloader
    • modelo de delegação
    • classloader personalizado
    • módulos JPMS
    • classpath vs modulepath
5 · Frameworks e Ferramentas5 tópicos
  • Spring Boot

    Autoconfiguração, injeção de dependência, ciclo de vida de beans, profiles e actuator

    Objetivos

    • Explicar a mecânica de autoconfiguração do Spring Boot
    • Configurar beans e profiles corretamente

    Conceitos-chave

    • autoconfiguração
    • injeção de dependência
    • ciclo de vida de beans
    • profiles
    • actuator
    • starters
    • @Configuration
  • JPA e Hibernate

    Mapeamento de entidades, relacionamentos, JPQL, problema N+1, níveis de cache e lazy loading

    Objetivos

    • Prevenir problemas de consulta N+1
    • Configurar relacionamentos de entidades corretamente

    Conceitos-chave

    • mapeamento de entidades
    • @OneToMany/@ManyToOne
    • JPQL
    • problema N+1
    • cache de primeiro/segundo nível
    • lazy vs eager
    • dirty checking
  • Testes e JUnit

    JUnit 5, Mockito, test slices, testes de integração e práticas de TDD

    Objetivos

    • Escrever testes unitários e de integração eficazes
    • Utilizar test slices para testes Spring rápidos

    Conceitos-chave

    • JUnit 5
    • Mockito
    • @SpringBootTest
    • test slices
    • Testcontainers
    • TDD
    • bibliotecas de asserção
  • Ferramentas de Build

    Maven, Gradle, gerenciamento de dependências, projetos multimódulo e integração CI/CD

    Objetivos

    • Configurar builds multimódulo corretamente
    • Gerenciar conflitos de dependências de forma eficaz

    Conceitos-chave

    • ciclo de vida do Maven
    • estrutura do pom.xml
    • scripts de build Gradle
    • Gradle vs Maven
    • gerenciamento de dependências
    • plugins
    • projetos multimódulo
    • fundamentos de Bazel
  • Logging

    Fachada SLF4J, configuração de Logback e Log4j2, níveis de logging, MDC e logging estruturado

    Objetivos

    • Configurar frameworks de logging com níveis e appenders apropriados
    • Utilizar MDC e logging estruturado para observabilidade em produção

    Conceitos-chave

    • fachada SLF4J
    • configuração do Logback
    • Log4j2
    • níveis de logging
    • contexto MDC
    • logging estruturado
    • rotação de logs
    • impacto no desempenho
6 · Java Especialista10 tópicos
  • Internos da JVM

    Bytecode, compilação JIT, inlining, análise de escape e intrinsics

    Objetivos

    • Explicar os níveis de compilação JIT e otimizações
    • Prever quando a análise de escape se aplica

    Conceitos-chave

    • bytecode
    • compilação JIT
    • compiladores C1/C2
    • inlining
    • análise de escape
    • intrinsics
    • compilação em camadas
  • Padrões de Microsserviços

    Circuit breaker, saga, API gateway, service mesh e observabilidade em ecossistemas Java

    Objetivos

    • Projetar microsserviços resilientes com padrões adequados
    • Implementar rastreamento distribuído e observabilidade

    Conceitos-chave

    • circuit breaker
    • padrão saga
    • API gateway
    • service mesh
    • rastreamento distribuído
    • Resilience4j
    • Micrometer
  • Virtual Threads

    Project Loom, virtual threads vs platform threads, concorrência estruturada e pinning

    Objetivos

    • Explicar o agendamento de virtual threads e pinning
    • Migrar código bloqueante para virtual threads

    Conceitos-chave

    • virtual threads
    • concorrência estruturada
    • carrier threads
    • pinning
    • thread-per-request
    • StructuredTaskScope
  • GraalVM e Native Image

    Compilador GraalVM, native image, substrate VM, configuração de reflection e otimização de startup

    Objetivos

    • Construir native images e lidar com limitações de reflection
    • Comparar trade-offs entre AOT e JIT

    Conceitos-chave

    • GraalVM
    • native image
    • substrate VM
    • configuração de reflection
    • compilação AOT
    • closed-world assumption
    • tempo de startup
  • Internos da JVM e Tuning de GC

    Compreensão do modelo de memória da JVM, coletores de lixo (G1, ZGC, Shenandoah) e tuning para cargas de trabalho em produção

    Objetivos

    • Ajustar regiões de heap do G1GC e metas de pausa para serviços sensíveis a latência
    • Interpretar saída de logs de GC para diagnosticar picos de pausa

    Conceitos-chave

    • regiões de heap
    • G1GC
    • ZGC
    • Shenandoah
    • tuning de pausas de GC
    • safepoints
    • análise de logs de GC
    • flags -XX
  • Concorrência Estruturada e ScopedValues

    Uso das APIs de concorrência estruturada do Java 21 (StructuredTaskScope) e ScopedValue para propagação de contexto em ambientes de virtual threads

    Objetivos

    • Utilizar StructuredTaskScope.ShutdownOnFailure para distribuir subtarefas com segurança
    • Substituir variáveis thread-local por ScopedValue em código com virtual threads

    Conceitos-chave

    • StructuredTaskScope
    • ShutdownOnFailure
    • ShutdownOnSuccess
    • ScopedValue
    • propagação de contexto
    • tempo de vida da árvore de tarefas
    • semântica de cancelamento
  • Modelo de Memória Java e Happens-Before

    Compreensão do Modelo de Memória Java, relacionamentos happens-before, semântica de volatile e padrões de publicação segura

    Objetivos

    • Explicar a garantia happens-before para blocos synchronized e escritas volatile
    • Identificar condições de corrida de dados e aplicar padrões corretos de publicação segura

    Conceitos-chave

    • happens-before
    • volatile
    • synchronized
    • campos final
    • publicação segura
    • visibilidade de memória
    • JSR-133
    • AtomicXxx
  • Programação Reativa com Project Reactor

    Construção de streams reativos com Project Reactor (Flux/Mono), backpressure, schedulers e tratamento de erros

    Objetivos

    • Implementar um pipeline de dados reativo com tratamento de erros e backpressure
    • Escolher entre flatMap, concatMap e switchMap para diferentes casos de uso

    Conceitos-chave

    • Flux
    • Mono
    • backpressure
    • schedulers
    • flatMap vs concatMap
    • hot vs cold publishers
    • StepVerifier
    • WebFlux
  • Manipulação de Bytecode (ASM/ByteBuddy)

    Instrumentação de aplicações Java em nível de bytecode usando ASM ou ByteBuddy para agentes APM e proxies dinâmicos

    Objetivos

    • Instrumentar um método com ASM para registrar métricas de invocação
    • Construir um JavaAgent usando ByteBuddy Advice para interceptar chamadas de métodos

    Conceitos-chave

    • ClassVisitor
    • MethodVisitor
    • ByteBuddy
    • java.lang.instrument
    • Advice
    • proxy dinâmico
    • retransformação de classes
  • Arquitetura de Segurança Java

    Security manager do Java, JAAS, APIs de criptografia JCA/JCE, práticas de codificação segura e hardening de desserialização

    Objetivos

    • Fortalecer a desserialização Java com ObjectInputFilter/SerialFilter
    • Utilizar APIs JCA/JCE corretamente para criptografia, assinatura e gerenciamento de chaves

    Conceitos-chave

    • SecurityManager
    • JAAS
    • JCA/JCE
    • KeyStore
    • gadgets de desserialização
    • SerialFilter
    • injeção JNDI
    • secure random

Níveis: Júnior, Pleno, Sênior e Especialista

Explique com suas palavras

Corrigido por IA · sem cadastro · 1 pergunta

Sem alternativas para chutar: você escreve, a IA corrige com a rubrica do tópico e diz em que nível sua resposta está.

0 / 600

Já estuda Java?

A avaliação mede tópico por tópico, e o plano pula o que você já sabe.

Aberto para ler. A conta só é necessária para ser medido.

Perguntas frequentes

Por onde começar a estudar Java?

Comece por Fundamentos da Linguagem: Tipos e Operadores, Fluxo de Controle e Fundamentos de OOP. O mapa ordena os tópicos pelo que depende de quê, então cada um prepara o seguinte.

Quanto tempo leva uma avaliação completa de Java?

Uma avaliação completa desta trilha leva cerca de 45 minutos. O tempo de estudo depende de onde você começa; o diagnóstico mostra quais tópicos você pode pular.

Preciso de conta para usar esta página?

Não. O mapa, os objetivos e os conceitos-chave são abertos. A conta só é necessária para ser medido, ver seu gap por tópico e receber um plano.