Java 9 Interativo, reativo e modularizado
Rodrigo TuriniIntrodução
Este livro é dividido em fases. Nos primeiros capítulos, você conhecerá o novo ambiente interativo do Java, chamado JShell, e com ele explorará algumas das principais evoluções nas APIs existentes, além de implementar funcionalidades utilizando o HTTP/2 Client e a nova Flow API, que trazem suporte à elegante solução de Reactive Streams para a linguagem.
O passo seguinte será importar todo o código construído nos capítulos anteriores para dentro de um novo projeto que será criado, com o nome bookstore . Com isso, você terá o ambiente perfeito para conhecer o conceito-chave do JDK 9, que é o sistema de módulos. O projeto tradicional será migrado para o modular, e assim você perceberá de forma prática as principais diferenças e vantagens dessa nova possibilidade.
Em outras palavras, o livro começa no interativo, parte para o reativo e, por fim, ao modular. Dessa forma, você passa por cada uma das marcantes características da nova versão da linguagem.
RESUMO DO CONTEÚDO
A lista a seguir mostra um resumo dos principais recursos e tópicos abordados em cada um dos capítulos do livro.
Capítulo 1 — A vida antes e depois do Java 8: relembra as principais introduções da versão anterior da linguagem, como: Lambda, method reference, default methods e Streams. Também são mencionadas as principais novidades do Java 9, além de recursos esperados e que ficaram de fora.
Capítulo 2 — JShell: Java 9 interativo: apresenta a nova ferramenta de REPL (Read-Eval-Print Loop), que traz uma forma muito mais eficiente de executar código com feedback imediato. Chega de classes de teste com o método main! Com ele, a experiência de executar códigos rápidos na linguagem é completamente renovada, desde o primeiro contato do iniciante até a exploração de novas APIs para usuários avançados.
Capítulo 3 — Atualizações nas principais APIs: mostra o que mudou nas Collections, Streams, Optionals e outros. Entre as principais novidades está o destaque para novos default methods, que oferecem formas mais sucintas de se criar mapas e coleções.
Capítulo 4 — HTTP/2 Client API: apresenta o conceito de incubator modules, que promete uma evolução mais rápida e estratégica na plataforma! Vamos conhecer seu primeiro candidato, uma API completamente repaginada com suporte para requisições HTTP/2.
Capítulo 5 — Reactive Streams: mostra a evolução arquitetural do pacote java.util.concurrent , que introduz uma nova API de fluxos reativos. Nesse ponto, você verá como resolver problemas avançados em execuções assíncronas com back pressure.
Capítulo 6 — Juntando as peças: é o momento em que vamos juntar todas as implementações dos capítulos anteriores em um novo projeto, chamado bookstore , ainda com o formato tradicional das antigas versões da linguagem. Aqui os processos de compilação e execução serão revistos, além da, até então, atual abordagem do classpath, para que as diferenças da nova versão fiquem bastante evidentes.
Capítulo 7 — Java modular: expõe os principais problemas da antiga estrutura monolítica da plataforma Java, junto com sua solução: um novo sistema de módulos e a modularização do próprio JDK. O projeto criado no capítulo anterior será migrado e você perceberá na prática cada uma das características e vantagens dessa nova possibilidade.
Capítulo 8 — Criando imagens de execução customizadas: explicará quando e como você pode criar ambientes de execução mais leves, com apenas um pedacinho do JRE que a aplicação precisa para executar. Você também verá como analisar as dependências utilizadas em cada ponto de seu código.
Capítulo 9 — Evolução dos JARs no JDK 9: mostrará tudo o que muda na estrutura de um JAR modular, além da nova possibilidade de ter um único JAR que suporta diferentes versões do Java.
Capítulo 10 — Logging API: discute a grande motivação por trás da nova API de logging do JDK 9, que nos possibilita criar um provedor padrão de mensagens que pode ser usado tanto em seu código como no do próprio JDK.
Capítulo 11 — Stack-Walking API: mostra o essencial sobre a nova API que nos permite passear pela Stack das aplicações, de forma extremamente eficiente. Detalhes sobre a retenção de informações da máquina virtual serão comentados, para que você saiba quando e como tirar proveito dessas opções.
Capítulo 12 — Mais Java 9, APIs e outras mudanças: apresenta mais alguns dos detalhes que mudaram na linguagem e plataforma. Milling Project Coin, evolução do deprecated, melhorias de performance e o uso do Garbage Collector G1 como implementação padrão são alguns deles.
Capítulo 13 — Continue seus estudos: é o ponto final de nosso jornada, indicando os possíveis próximos passos para que você aproveite ao máximo o conteúdo deste livro.
PARA QUEM É ESTE LIVRO
O livro é voltado para desenvolvedores que já conhecem a linguagem Java, e querem se atualizar com as novidades dessa versão.
Se ainda não conhece os recursos do JDK 8, certamente vai se interessar em começar pelo livro Java 8 Prático, que escrevi junto com o Paulo Silveira. Nele damos um overview sobre Lambdas, Streams e os novos recursos da versão anterior da linguagem. Para mais, acesse: https://www.casadocodigo.com.br/products/livrojava8.
É importante que você já tenha uma base sólida sobre essa versão do Java antes de prosseguir com o estudo dos novos recursos.
Sumário
- 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 HttpClient
- 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?
Dados do produto
- Número de páginas:
- 273
- ISBN:
- 978-85-94188-09-0
- Data publicação:
- 09/2017