Com mais de 20 anos de plataforma, um novo Java surge com novidades importantes. O destaque especial vai para o sistema de módulos, o Jigsaw, e a modularização do próprio JDK. A linguagem também ficou interativa, com a adição de uma ferramenta de REPL (Read-Eval-Print Loop), e mais reativa, com uma API de fluxos inteiramente dedicada aos famosos Reactive Streams.
As APIs de HTTP/2 Client, Logging e Stack-Walking são outros exemplos de novidades que serão explorados. Além disso, você verá surpresas como métodos privados em interfaces, arquivos de properties com suporte a UTF-8 e os vários novos métodos default nas APIs de Collection, Stream e outros.
Neste livro, Rodrigo Turini mostrará as principais novidades do Java 9 com a criação de um projeto prático, no qual você acompanhará com as mãos na massa as mudanças da plataforma e como migrar os seus códigos para tirar proveito dos novos recursos.
Inhaltsverzeichnis
1 A vida antes e depois do Java 8
1.1 Que venha o Java 9
1.2 Propostas que ficaram de fora
1.3 Acesse e exercite todo o código visto
1.4 Entre em contato conosco
1.5 Instalando o Java 9
2 JShell: Java 9 interativo
2.1 JShell, o REPL do Java
2.2 Iniciando o JShell
2.3 O clássico hello world com REPL
2.4 Declarando variáveis explicitamente
2.5 Declarando variáveis de forma implícita
2.6 Ajustando os níveis de feedback
2.7 Métodos, classes e instruções mais complexas
2.8 Adicionando imports
2.9 Atalhos, truques e auto-completion
2.10 Explorando novas APIs
2.11 Mais detalhes e configurações
2.12 Download dos exemplos deste capítulo
3 Atualizações nas principais APIs
3.1 Melhorias nas Collections
3.2 Atualizações nos Streams
3.3 Novos Collectors
3.4 Atualizações no Optional
3.5 Mais novidades
3.6 Download dos exemplos deste capítulo
4 HTTP/2 Client API
4.1 O primeiro dos incubator modules
4.2 Preparando seu ambiente
4.3 Requests HTTP da forma antiga
4.4 O novo HTTP/2 Client API
4.5 Lidando com redirects
4.6 Configurando o Http Client
4.7 Buscando livros com HTTP/2 client
4.8 Requisições assíncronas
4.9 Criando um arquivo CSV no retorno
4.10 Outras novidades do HTTP/2 Client API
4.11 Download dos exemplos deste capítulo
5 Reactive Streams
5.1 Emissão de notas fiscais
5.2 Primeiro contato com fluxo reativo
5.3 Criando seu próprio Subscriber
5.4 Entendendo o Processor
5.5 Download dos exemplos deste capítulo
6 Juntando as peças
6.1 Criando um novo projeto
6.2 Listando livros com HTTP/2 client
6.3 Integrando a emissão de notas fiscais
6.4 Interagindo com a lista de livros
6.5 Revendo o projeto e responsabilidades
6.6 Download do projeto completo
7 Java Modular
7.1 Antes do Java 9
7.2 Que venha o modular
7.3 Modularizando a bookstore
7.4 Trabalhando com diferentes módulos
7.5 O JDK modular
7.6 Para saber mais
7.7 Download do projeto completo
8 Criando imagens de execução customizadas
8.1 Criando uma imagem de execução customizada
8.2 Criando a imagem a partir das definições do projeto
8.3 Análise de dependências dos módulos
8.4 Encontrando detalhes dos módulos e dependências via Reflection
8.5 Download das JREs criadas
9 Evolução dos JARs no JDK 9
9.1 Empacotando projetos modulares
9.2 Executando projetos modulares
9.3 Multi-Release JAR files
9.4 Para saber mais
10 Logging API
10.1 Criando um módulo de logs
10.2 Logs da JVM e Garbage Collector
10.3 Download do projeto completo
11 Stack-Walking API
11.1 Novo módulo de Tracking
11.2 Stack-Walking API
11.3 Criando Stacks com mais informações
11.4 Download do projeto completo
12 Mais Java 9, APIs e outras mudanças
12.1 Quebra de compatibilidade?
12.2 Strings mais leves e eficientes
12.3 Garbage Collectors e o G1
12.4 Download dos exemplos deste capítulo
13 Continuando seus estudos
13.1 Java 10 e como se manter atualizado
13.2 Como tirar suas dúvidas
13.3 E agora?
Über den Autor
Rodrigo Turini é Bacharel em Ciência da Computação e líder técnico na Alura, a plataforma de cursos online do Grupo Caelum. Desenvolve em diferentes linguagens, mas tem um envolvimento muito forte com o Java, sendo membro ativo da JCP e de expert groups do Java EE. Turini participa ativamente da comunidade em blogs, fóruns, listas de discussões e também em eventos nacionais e internacionais. É um dos líderes de desenvolvimento do VRaptor, e contribui para diversos outros projetos e manifestos open source. Gosta de estudar continuamente as melhores práticas da orientação a objetos, programação funcional e reativa.