Conheça as novidades do Java 9 – 1/2

Fiquei muito feliz com a repercussão do último post do blog, que teve cerca de 3.500 acessos em apenas 2 dias.

Dando continuidade a este, irei apresentar algumas novidades do java 9 que foram discutidas no meetup do GuJavaSC. Decidi dividir este post em 2 partes por conta da quantidade de conteúdo.

JAVA 18.3
Conforme apresentado no post anterior, a cada 6 meses será lançado uma nova versão do java. E agora? Em março de 2018 teremos a versão 10 do java? NÃO!

Para nossa surpresa a nova versão do java será a 18.3 e a seguinte que será lançada em setembro vai ser a 18.9.

A ideia é manter o ano(18 = 2018) acrescido do mês(3 = março). Sendo assim, teremos a seguinte sequência:


18.3 – Março de 2018
18.9 – Setembro de 2018
19.3 – Março de 2019
19.9 – Setembro de 2019

Para ser sincero eu achei bem estranho, inclusive nesse post alguns especialista discordam dessa mudança.

Vamos então as novidades: 😛

MODULARIDADE (JIGWAW)
Torna o Java SE mais escalável e flexível. Indo ao encontro da ideia de micro serviços e internet das coisas.

O rt.jar tem agora 94 módulos definidos que podem ser listados com o seguinte comando:

java –list-modules

Veja a imagem abaixo que apresenta essa modularização:

jdk-modules

Mas na prática o que muda?

Foi adicionado o arquivo module-info.java na estrutura do projeto. E é através dele que será controlado os módulos. Por exemplo… Quero desenvolver uma aplicação desktop utilizando o Swing, o arquivo ficaria parecido com isso:

module module-info {
  requires java.desktop;
}

Trabalhando dessa forma é possível minimizar o problema do classpath hell e o desenvolvedor adiciona apenas aquilo que será utilizado. Houve também alterações na estrutura de pastas do JDK/JRE e com essas mudanças podem ocorrer alguns problemas de incompatibilidade com sistemas legados.

Recomendo a leitura desse post da caelum sobre o jigsaw para entender um pouco melhor.

JLINK
Após essa modularização é possível montar um módulo da máquina virtual java utilizando apenas aquilo que for necessário. Uma das GRANDES reclamações dos usuários é que java é a lentidão.

E esta sentença tinha um pouco de razão. Pois a JVM trabalhava de forma “inflada” com várias biblioteca que nem eram utilizadas para determinado projeto. Com essa mudança será possível subir uma JVM com 15 a 18 MB. 😯

COLLECTION FACTORIES
Novos métodos foram adicionados para criação de coleções imutáveis (List, Set e Map). Veja os exemplos:

List immutableList = List.of("one", "two", "three");
Map immutableMap = Map.of(1, "one", 2, "two", 3, "three");

Este post é um resumo da apresentação do Rodrigo Cândido com alguns complementos e o slide que foi apresentado por ser visto aqui. No próximo post veremos mais algumas novidades. Até a próxima! 😀

4 comments

Deixe uma resposta