Java 10: Principais Recursos e Modelo de Lançamento Explicados
O Java 10 é um lançamento importante no ritmo de lançamentos do Java, liberado em 20 de março de 2018. Com o Java 10, a Oracle alterou o ritmo para um novo modelo: lançamentos a cada 6 meses e modelo LTS (Long Term Support) para produtos Oracle Java SE.
A partir do Java 10, a Oracle lança uma nova versão a cada 6 meses, cada uma com uma ou duas funcionalidades principais. Usa-se o conceito de release train (trem de lançamento): cada trem é agendado para 6 meses. Funcionalidades desenvolvidas nesse período entram no lançamento; caso contrário, vão para o próximo.
Oracle JDK vs OpenJDK
A maioria dos binários do Oracle JDK é proprietária e licenciada, com restrições de redistribuição. O OpenJDK é mais amigável à comunidade de desenvolvedores. A partir do Java 10, a Oracle decidiu promover o OpenJDK como JDK principal para facilitar o desenvolvimento comunitário. A Oracle continuará produzindo seus próprios JDKs, mas os lançará após 3 anos como versões LTS. Binários do OpenJDK serão lançados a cada 6 meses.
O OpenJDK é amigável a nuvem e contêineres, pois pode ser distribuído livremente como parte do contêiner. Essa mudança torna o Java mais adequado para desenvolvimento e implantação em nuvem/conteineres.
Java 9 e Java 10 são lançamentos não-LTS. O Java 11 é um lançamento LTS.
Novas Funcionalidades
Principais novos recursos introduzidos no Java 10 (JEPs - JDK Enhancement Proposals):
- JEP 286 - Inferência de Tipo de Variável Local (
var) - JEP 322 - Versionamento Baseado em Tempo
- JEP 304 - Interface do Coletor de Lixo (Garbage Collector Interface)
- JEP 307 - Full GC Paralelo para G1
- JEP 316 - Alocação de Heap em Dispositivos de Memória Alternativos
- JEP 296 - Consolidar a Floresta JDK em um Único Repositório
- JEP 310 - Compartilhamento de Dados de Classe de Aplicação (App CDS)
- JEP 314 - Extensões Adicionais de Language-Tag Unicode
- JEP 319 - Certificados Raiz
- JEP 317 - Compilador JIT Experimental Baseado em Java (Graal)
- JEP 312 - Handshakes Thread-Local
- JEP 313 - Remover Ferramenta de Geração de Cabeçalho Nativo (javah)
O Java 10 aprimorou mais de 70 APIs com novos métodos e opções, e removeu APIs e opções obsoletas. Veremos essas mudanças nos próximos capítulos.
Java
- Dominando Operadores Java: Tipos, Sintaxe e Exemplos Práticos
- Comentários em Java: Tipos, Uso e Boas Práticas
- Dominando o Loop for Aprimorado em Java: Sintaxe, Exemplos e Boas Práticas
- Dominando Strings em Java: Criação, Métodos e Boas Práticas
- Dominando Interfaces em Java: Conceitos, Implementação e Boas Práticas
- Dominando Classes Internas Anônimas em Java: Definição, Sintaxe e Exemplos Práticos
- Dominando Try-With-Resources em Java: Gerenciamento Automático de Recursos Explicado
- Anotações em Java Explicadas: Tipos, Posicionamento e Exemplos Práticos
- Asserções em Java: Guia Prático para Detectar Bugs e Garantir Confiabilidade do Código
- Linguagem de Programação Java: Evolução, Versões e Aplicações