IntroduçãoIntrodução ao Java Avançado
Arquitetura Java
Comandos e Bytecode
Bytecode, Unassembler e cmd
Decompilação e Ofuscação
Java Debugger
MemóriaCurso de Java Avançado: Medindo Memória no Java
Otimização de memória
Aprendendo a usar a API Trove
Trove vs JDK vs Guava
Otimização de memória com API do Gnu
Tunning de Memória com Wrappers
Conhecendo o Psi Probe
Configurando o war do Probe
Configurando DataSources no Tomcat
JMX com Tomcat
JMX com Tcat
Garbage CollectorCurso de Java Avançado: Princípios de coleta de lixo com GC
Estratégias dinâmicas e estáticas do GC
Explorando verbose do GC e JMap
Gerenciamento de memória e GC com Tools do JDK
Orientação a ObjetosCurso de Java Avançado: Programando orientado a interfaces
Interfaces e envio de parâmetros
Conhecendo a hierarquia de Collections
Comparable vs Comparator
Explorando o conceito de herança
Trabalhando com imutabilidade de objetos
Entenda os modelos anêmicos
Trabalhando com o DDD
Trabalhando com Injeção de Dependências
Trabalhando com Enums
RefactoringRefactoring em Java
Top 10 Refactorings Java
Aplicando a extração de métodos na refatoração
Refatorando injeção de dependências
Trabalhando com o padrão Strategy
Teste UnitárioTrabalhando com os Fixtures
Introdução ao TDD
Introdução ao BDD
ExtraIntrodução às Annotations em Java
Introdução ao projeto Lombok
Ferramentas de análise de código
ConclusãoComo se tornar um programador melhor?