Pular para o conteúdo

public class Estudo {

Trilha de Java, do zero ao Spring.

Oito etapas com critério de conclusão declarado — sem isso, trilha nenhuma termina. Hoje: 2 de 8 concluídas, estudando "Coleções e generics".

Roadmap

A ordem importa: cada etapa assume a anterior resolvida.

  1. Fundamentos da linguagem

    concluído

    Ler e escrever um programa Java sem consultar sintaxe a cada linha.

    • JVM, JDK e JRE — o que cada sigla faz
    • Tipos primitivos e wrappers
    • Controle de fluxo e escopo
    • Arrays e String (imutabilidade)
    • javac, java e a estrutura de pacotes

    Pronto quando: Escrever um CLI que lê argumentos, valida entrada e imprime relatório.

  2. Orientação a objetos de verdade

    concluído

    Modelar um domínio com classes que escondem estado em vez de expô-lo.

    • Classe, instância e construtor
    • Encapsulamento e os limites do getter/setter
    • Herança vs. composição — quando cada uma mente
    • Interfaces e classes abstratas
    • equals, hashCode e toString como contrato

    Pronto quando: Modelar um carrinho de compras sem nenhum campo público.

  3. Coleções e generics

    estudando

    Escolher a estrutura de dados pelo custo, não pelo hábito.

    • List, Set, Map e quando cada um é a resposta
    • ArrayList vs. LinkedList — o custo real
    • HashMap: hashing, colisão e carga
    • Generics, wildcards e type erasure
    • Comparable, Comparator e ordenação estável

    Pronto quando: Justificar por escrito a escolha de coleção em três cenários diferentes.

  4. Exceções e I/O

    planejado

    Tratar falha como caminho previsto, não como acidente.

    • Checked vs. unchecked — a decisão de projeto por trás
    • try-with-resources e AutoCloseable
    • Criar exceção própria que carrega contexto
    • java.nio.file.Path e Files
    • Serialização e seus riscos

    Pronto quando: Ler um CSV grande tratando arquivo ausente, linha malformada e encoding.

  5. Java moderno

    planejado

    Escrever no Java de hoje, não no de 2011.

    • Lambdas e interfaces funcionais
    • Stream API — map, filter, collect, reduce
    • Optional sem virar null com outro nome
    • var, records, sealed e pattern matching
    • Text blocks e switch expressions

    Pronto quando: Reescrever um laço aninhado antigo como pipeline de stream legível.

  6. Concorrência

    planejado

    Entender por que código correto quebra com dois usuários.

    • Thread, Runnable e o custo de criar thread
    • synchronized, volatile e o modelo de memória
    • ExecutorService e pools
    • CompletableFuture
    • Virtual threads (Project Loom)

    Pronto quando: Demonstrar uma race condition e depois corrigi-la com teste que prova.

  7. Build, testes e ecossistema

    planejado

    Entregar um artefato que outra pessoa consegue rodar.

    • Maven e Gradle — ciclo de vida e dependências
    • JUnit 5 e AssertJ
    • Mockito e o limite do mock
    • Cobertura: o que ela mede e o que não mede
    • Empacotar um JAR executável

    Pronto quando: Projeto com build reprodutível e suíte que roda em CI.

  8. Spring e persistência

    planejado

    Construir uma API que fala com banco sem virar bola de barro.

    • Injeção de dependência e inversão de controle
    • Spring Boot: autoconfiguração e profiles
    • REST com Spring Web e tratamento de erro
    • JPA/Hibernate, o N+1 e o mapeamento
    • Migrations com Flyway

    Pronto quando: API CRUD com testes de integração subindo banco real em container.

Cheat sheets

Consulta rápida — o que se esquece entre um projeto e outro.

Coleções

6 itens

Criar, percorrer e transformar as estruturas do dia a dia.

Streams

6 itens

O pipeline que substitui o laço aninhado.

Recursos que encolhem código cerimonial.