Cadernos para baixar

Exercícios para praticar o que os artigos ensinam e o gabarito comentado, em PDF.

Ferramentas de Precisão — Locks, Atomics e Coleções Concorrentes
Ferramentas de Precisão — Locks, Atomics e Coleções Concorrentes

Quando o synchronized pesa demais, o java.util.concurrent oferece peças sob… [+]

Encadeando o que Ainda Não Aconteceu — CompletableFuture
Encadeando o que Ainda Não Aconteceu — CompletableFuture

Em vez de esperar com get(), o CompletableFuture registra o que fazer quando o… [+]

Um Milhão de Threads — Virtual Threads
Um Milhão de Threads — Virtual Threads

Threads virtuais esperam quase de graça: dez mil requisições de um segundo… [+]

Tarefas em Família — Structured Concurrency e Scoped Values
Tarefas em Família — Structured Concurrency e Scoped Values

Concorrência estruturada e valores com escopo no Java 25: subtarefas que não… [+]

Lições de Quem Veio Antes — Effective Java, Código Limpo e Padrões
Lições de Quem Veio Antes — Effective Java, Código Limpo e Padrões

O que três livros clássicos ensinam sobre escrever Java bem: como criar… [+]

Contratos à Vista — Imutabilidade, Programação Defensiva e JSpecify
Contratos à Vista — Imutabilidade, Programação Defensiva e JSpecify

Como uma classe se protege de quem a usa: objetos que não podem ser alterados… [+]

Do JAR ao Executável — jlink, jpackage e GraalVM Native Image
Do JAR ao Executável — jlink, jpackage e GraalVM Native Image

Como entregar um programa Java a quem não tem Java instalado: descobrir de… [+]

O Projeto Final Começa — Arquitetando um Servidor HTTP sobre Sockets
O Projeto Final Começa — Arquitetando um Servidor HTTP sobre Sockets

Começa o projeto final: o que trafega entre navegador e servidor no HTTP/1.1… [+]