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:
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! 😀
Vai ser parecido com as versões do Ubuntu, como Ubuntu 18.4 e Ubuntu 18.10
Isso ai Bruno!!! 🙂
Quis dizer ao encontro de, não?
“De encontro a” significa opor-se a…
Corrigido. Obrigado pela observação. 🙂