Após seis meses de desenvolvimento, A Oracle anunciou o lançamento da nova versão do Java SE 14. Esta plataforma é usada como uma implementação de referência OpenJDK de software livre. Java SE 14 mantém compatibilidade com versões anteriores da plataforma Java; Todos os projetos Java escritos anteriormente funcionarão inalterados quando iniciados com a nova versão.
Compilações Java SE 14 pronto para instalar (JDK, JRE e Server JRE) estão preparados para Linux (x86_64), Windows e macOS. A implementação de referência Java 14 desenvolvida pelo projeto OpenJDK está totalmente aberta sob a licença GPLv2 com exceções GNU ClassPath que permitem links dinâmicos para produtos comerciais.
Principais novos recursos do Java SE 14
Esta nova versão do Java SE 14 é classificado como um período de suporte regular Para o qual as atualizações serão lançadas antes da próxima versão, já que o branch LTS estável atual "Java SE 11" terá atualizações até 2026, enquanto o branch Java 8 LTS anterior terá suporte até dezembro de 2020.
Entre as principais novidades desta versão o suporte experimental de instancia de, registro y par de suporte experimentalpara blocos de texto foi expandido.
- instancia de: É usado para correspondência de padrões no operador que permite determinar imediatamente a variável local para acessar o valor verificado.
- registro: fornece uma maneira compacta de definir classes, evitando a definição explícita de vários métodos de baixo nível, como é igual a (), hashCode () y para sequenciar(), nos casos em que os dados são armazenados apenas em campos.
- Expansão em blocos de texto: fornece uma nova forma de literais de string que permite incluir dados de texto de várias linhas em seu código-fonte sem escapar e preservar a formatação do texto original no bloco. O enquadramento do bloco é feito com três aspas duplas.
No Java 14, os blocos de texto suportam a sequência de escape "\ s" para definir um único espaço e "\" para concatenar com a próxima linha.
Também podemos encontrar isso uma versão de visualização do utilitário jpackage foi implementada, que permite que você crie pacotes para aplicativos Java autônomos. O utilitário é baseado no JavaFX javapackager e permite criar pacotes em formatos nativos para várias plataformas (msi e exe para Windows, pkg e dmg para macOS, deb e rpm para Linux).
Por outro lado, é mencionado quee um novo mecanismo de alocação de memória foi adicionado ao coletor de lixo G1, levando em consideração as características específicas de trabalhar em sistemas de grande porte usando a arquitetura NUMA. O novo alocador de memória é habilitado usando o sinalizador "+ XX: + UseNUMA" e pode aumentar significativamente o desempenho em sistemas NUMA.
UMA visualização da API de acesso à memória externao que permite que aplicativos Java acessem com segurança e eficiência áreas de memória externas do heap Java, manipulando novas abstrações de MemorySegment, MemoryAddress e MemoryLayout.
Portas para Solaris OS e processadores SPARC declaradas obsoletas com a intenção de removê-los no futuro. Mover essas portas para as obsoletas permitirá que a comunidade acelere o desenvolvimento de novos recursos do OpenJDK sem perder tempo mantendo recursos específicos para Solaris e SPARC.
Além disso, Coletor de lixo CMS removido (Concurrent Mark Sweep), que estava obsoleto há dois anos e não vinha acompanhado. Além disso, o uso de uma combinação de algoritmos de coleta de lixo e ParallelScavenge SerialOld foi declarado obsoleto.
Das outras mudanças que são mencionados no anúncio:
- Ferramentas e APIs para compactar arquivos JAR usando o algoritmo Pack200 foram removidos.
- Adicionada API para rastrear eventos JFR em tempo real (JDK Flight Recorder), por exemplo, para organizar o monitoramento contínuo.
- O módulo jdk.nio.mapmode foi adicionado, que oferece novos modos (READ_ONLY_SYNC, WRITE_ONLY_SYNC) para criar buffers de byte mapeados (MappedByteBuffer) que se referem à memória não volátil (NVM).
Si você quer saber mais sobre isso, você pode conferir o anúncio desta nova versão no link a seguir.