Java 9 Interativo, reativo e modularizado
Rodrigo TuriniConteúdo
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.
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 Como tirar suas dúvidas
- 13.2 E agora?
Autor
Rodrigo Turini
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 JavaEE. 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.
Dados do produto
- Número de páginas:
- 273
- ISBN:
- 978-85-94188-09-0
- Data publicação:
- 09/2017