Vamos então dar continuidade ao post anterior com as novidades do java 9… 😀
Unicode 7.0 e 8.0
Foi adicionado o unicode 7.0 e 8.0 acrescentando cerca de 10.000 caracteres. O que eu achei bizarro que agora será possível adicionar emotions. Veja a imagem de um arquivo .properties no intelliJ:
G1 Garbage Collector
G1 é o novo coletor padrão. Ele trabalha com multithreaded, pausas mais curtas e previsíveis e também compacta o heap, reduzindo a fragmentação
Métodos privados em interface
Com a nova versão é possível implementar métodos privados em interfaces.
Programação reativa
A partir do java 9 foi definido uma especificação padrão para a programação reativa. Ela trabalha com uma interface Flow com suporte à publish-subscribe.
Process API
Foram feitas diversas melhorias na API para controlar e gerenciar processos do sistema operacional. Veja este link com a documentação.
JShell
Por vezes precisamos testar um código simples e criamos uma classe com um método main para isso. A partir do java 9 foi adicionado o comando jshell e através do console é possível fazer estes testes.
HTTP/2
Suporta conexões persistentes, cabeçalhos mais eficientes dentre outras melhorias. Foi adicionado a nova API: java.net.http substituindo a antiga implementação HttpURLConnection
Novos parâmetros no @Deprecated
A anotação @Deprecated suporta 2 novos parâmetros agora:
- since: String que define a partir de quando foi descontinuada
- forRemoval: indica que será removido na próxima versão
Melhorias no Javadoc
Finalmente o javadoc começou a utilizar o HTML 5, oferecendo suporte ao Jigsaw e foi adicionado um novo mecanismo de busca, conforme pode ser visto na imagem abaixo:
Compact Strings
Foram feitas mudanças na compactação de String visando a melhora na performance.
Outras novidades foram lançadas nessa versão e podem ser vistas com mais detalhes neste link. Lembrando que este post foi feito com base do material do Rodrigo Cândido apresentado do meetup do GuJavaSC.
E ai… Gostaram das novidades? Em março de 2018 tem mais! 😀