Java 16.

https://nakatech.herokuapp.com/img/works/20210424/index.jpg

Dia 16 de Março foi lançada a nova versão do Java, o Java 16.

Obedecendo a cadência de lançamentos semestrais, o Java 16 é a sétima versão nessa modalidade de release da Oracle.

Os lançamentos semestrais tem se mostrado muito eficiente, as capacidades são testadas e avaliadas mais rapidamente, não comprometendo a segurança das API’s.

A Oracle informou que o Java 16 ainda receberá mais algumas atualizações trimestrais até o lançamento do Java 17.

Foram corrigidos 1897 problemas da versão anterior, e o mais interessante é que as correções dos bugs foram divididas entre desenvolvedores individuais, desenvolvedores do meio corporativo e funcionários da própria Oracle.

Novidades do Java 16.

Apesar de várias correções absorvidas pela nova versão do Java 16, vamos listar 5 das que achei mais interessantes:

Novos Recursos de linguagem: Foi introduzido novamente Pattern Matching que aprimora correspondência de padrões para a instanceof.

Melhorias JVM: Foi adicionado Metaespaço Elástico, uma capacidade da JVM que aloca a memória de metaespaço em pedaços menores, reduzindo a carga do carregador de classe.

Novas Ferramentas e Bibliotecas: Uma novidade bem interessante que foi introduzido nas ferramentas Java foi a Ferramenta de Empacotamento que agora permite empacotar a aplicação em formato exe, msi, pkg, dmg, deb e rpm.

Características de Incubadora e Visualização: A API Vector (Incubadora) fornece uma iteração inicial de uma API para expressar cálculos vetoriais que compilam de forma confiável em tempo de execução.

Melhorando a Produtividade para Desenvolvedores OpenJDK: Adicionado Recursos de linguagem C++14 (no código fonte JDK) que permite o uso do C++14 no código-fonte JDK, possibilitando alteração do Hotspot.

Conclusão.

A Oracle vem mostrando que está disposta a competir com outras linguagens, disponibilizando e corrigindo as novas capacidades lançadas. O Java 16 apresenta várias melhorias que deixaram a versão mais eficiente.

Citação

Garbage Collector.

O Java Garbage Collector é o processo automático de gerenciamento de memória.

Programas Java são executados na JVM, os objetos são criados no heap, que é uma parte da memória dedicada para aplicação.

Quando os objetos não são mais necessários, o garbage collector localiza esses objetos não utilizados e os exclui para liberar espaço em memória.

Acesse o artigo completo em: https://nakatech.herokuapp.com/article/gc.html.

Open JDK.

Vamos falar um pouco sobre Open JDK e as diferenças entre outras implementações de JDK no mercado.

Primeiro, precisamos entender que a maioria das implementações de JDK são baseados no Open JDK.

Apesar do Open JDK ser uma implementação Open source, ele não é mantida somente pela comunidade, mas sim em conjunto entre Oracle e a Comunidade.

As diferenças entre o Open JDK e outras implementações geralmente são as alterações em performance.

Qualquer pessoa pode baixar o fonte do Open JDK e fazer as modificações para adaptar ao Hardware que está utilizando.

Existem várias empresas que fazem as alterações e comercializam suas implementações.

Algumas implementações de JDK.

Existem inúmeras implementações do JDK, das versões gratuitas até às pagas.

Vamos listar as mais conhecidas e algumas características.

  • Oracle JDK: A implantação mais utilizada e mais conhecida no mercado, essa implementação gera muita controvérsia quanto ao tipo de licença paga ou não, mas o Oracle JDK só é pago, caso queira algum suporte personalizado;
  • AdoptOpenJDK: Diferente do Open JDK que é mantido em conjunto entre Oracle e a comunidade, essa implementação é mantida unicamente pela comunidade;
  • Azul Zulu JDK: O Zulu JDK é uma implementação da Azul Systems que promete uma ótima performance;
  • IBM J9: Implementação feita pela IBM, as novas versões do J9 são gratuitas;
  • JRockit: Implementação paga da Oracle que tem como a principal característica o desempenho e performance.

Conclusão.

A maior diferença entre as Implementações das JDK’s é a melhoria da performance e desempenho, são poucas implementações que colocam novas capacidades ao JDK.

Link

Scala.

Scala é uma linguagem de programação multi-paradigma onde podemos programar com Orientação a Objetos e Funcional.

Todo valor em Scala é um Objeto, além de comportamentos de Classes e Traits(interface), trabalhando com a visão de linguagem Orientada a Objetos.

Já na visão de linguagem funcional, o Scala oferece a possibilidade de criar funções anônimas, funções de primeira ordem e funções aninhadas.

Scala possui uma tipagem segura, sendo uma linguagem estaticamente tipada.

Rodando sobre uma JVM, o Scala é interoperável com Java, ou seja, é possível chamar classes Java a partir de uma classe Scala.

Acesse o artigo completo em: https://nakatech.herokuapp.com/article/scala.html.