Oracle anuncia lançamento do Java 23

Oracle lança o Java 23 com 12 melhorias, focando em desempenho, segurança e novas APIs, fortalecendo o desenvolvimento e inovação nas empresas

TI
Imagem: Freepik

Nova versão entrega 12 Propostas de Melhoria do JDK que ajudam desenvolvedores a aumentar a produtividade ao melhorar a linguagem Java

A Oracle anunciou na terça-feira (17/09) a disponibilidade do Java 23, a mais recente versão da linguagem de programação e plataforma de desenvolvimento número um do mundo. Esta nova versão promete trazer 12 melhorias importantes, incluindo atualizações na linguagem Java, APIs, desempenho e ferramentas do JDK, conforme indicado nos documentos de lançamento. Essas atualizações visam não apenas aprimorar a experiência de desenvolvimento, mas também fortalecer a segurança, a estabilidade e o desempenho da plataforma, o que é essencial para o crescimento contínuo e a inovação nas organizações que dependem do Java.

“O Java continua a evoluir para apoiar as necessidades de desenvolvimento de aplicações modernas cada vez mais diversas das organizações”, disse Arnal Dayaratna, vice-presidente de pesquisa em desenvolvimento de software da IDC. “O novo lançamento permite que os desenvolvedores ampliem seu conjunto de ferramentas e aumentem sua produtividade, ajudando-os a criar e entregar aplicações que aproveitam o poder de tecnologias inovadoras, como IA. Ao entregar novas capacidades inovadoras a cada seis meses, o Java continua a ajudar as equipes de desenvolvimento a agregar valor significativo às suas organizações.”

O Java 23 é suportado pelo Java Management Service (JMS) 9.0, um serviço nativo da Oracle Cloud Infrastructure (OCI), que proporciona um console unificado e um painel que facilitam a gestão de ambientes de execução e aplicações Java no local ou em qualquer nuvem. Com a adição do compilador Graal, um compilador JIT dinâmico escrito em Java, o Oracle JDK 23 amplia as opções para otimização e ajuste fino do desempenho, marcando um avanço significativo na usabilidade e na capacidade de gerenciamento de aplicações Java.

As atualizações significativas entregues no Java 23 são:

Recursos da Linguagem via Projeto Amber

  • JEP 455: Tipos Primitivos em Padrões, instanceof e switch (Preview): Ajuda a aumentar a produtividade na programação em Java tornando a linguagem mais uniforme e expressiva. Ao ajudar a remover restrições relacionadas a tipos primitivos que os desenvolvedores encontram ao usar pattern matching, instanceof e switch, melhora o pattern matching permitindo padrões de tipo primitivo em todos os contextos de padrão, além de estender instanceof e switch para trabalhar com todos os tipos primitivos.
  • JEP 476: Declarações de Importação de Módulo (Preview): Ajuda os desenvolvedores a melhorar a produtividade ao permitir a importação rápida e fácil de todos os pacotes exportados por um módulo, sem exigir que o código de importação esteja no próprio módulo. Isso simplifica o reuso de bibliotecas modulares para todos os desenvolvedores e ajuda iniciantes a usar mais facilmente bibliotecas de terceiros e classes Java fundamentais sem precisar aprender onde elas estão localizadas em uma hierarquia de pacotes.
  • JEP 477: Classes Implicitamente Declaradas e Métodos Instance Main (Third Preview): Ajuda a acelerar o aprendizado e o desenvolvimento de habilidades oferecendo uma introdução suave à programação em Java, permitindo que estudantes escrevam seus primeiros programas sem precisar entender recursos da linguagem projetados para programas grandes. Como resultado, educadores e instrutores podem introduzir conceitos gradualmente, e os alunos podem escrever declarações simplificadas para programas de uma única classe e expandir seus programas com recursos mais avançados conforme suas habilidades crescem. Além disso, desenvolvedores experientes podem escrever pequenos programas de forma concisa sem precisar usar ferramentas projetadas para projetos maiores.
  • JEP 482: Flexible Constructor Bodies (Second Preview): Ajuda os desenvolvedores a aumentar a produtividade ao permitir que declarações apareçam antes de uma invocação explícita do construtor – como super(..) ou this(..). As declarações não podem referenciar a instância em construção, mas podem inicializar seus campos antes de invocar outro construtor, o que torna uma classe mais confiável quando métodos são sobrescritos. Isso oferece aos desenvolvedores maior liberdade para expressar o comportamento dos construtores e preserva a garantia existente de que os construtores são executados em ordem de cima para baixo durante a instanciação da classe.

Bibliotecas

  • JEP 466: API de Arquivo de Classe (Second Preview): Ajuda os desenvolvedores a melhorar a produtividade ao fornecer uma API padrão para análise, geração e transformação de arquivos de classe Java.
  • JEP 469: Vector API (Eighth Incubator): Ajuda os desenvolvedores a melhorar a produtividade ao introduzir uma API para expressar cálculos vetoriais que se compilam de forma confiável em instruções vetoriais em arquiteturas de CPU suportadas. Como resultado, os desenvolvedores podem alcançar um desempenho superior ao de cálculos escalares equivalentes.
  • JEP 473: Stream Gatherers (Second Preview): Ajuda os desenvolvedores a melhorar a produtividade ao aprimorar a API de Streams para suportar operações intermediárias personalizadas, permitindo que pipelines de streams transformem dados de maneiras que não são facilmente alcançadas com operações intermediárias incorporadas existentes. Ao tornar os pipelines de streams mais flexíveis e expressivos e permitir operações intermediárias personalizadas para manipular streams de tamanho infinito, esse recurso permite que os desenvolvedores se tornem mais eficientes na leitura, escrita e manutenção de código Java.
  • JEP 480: Structured Concurrency (Third Preview): Ajuda os desenvolvedores a melhorar a manutenibilidade, confiabilidade e observabilidade do código multithreaded ao simplificar a programação concorrente por meio de uma nova API para concorrência estruturada. Ao consolidar grupos de tarefas relacionadas executadas em diferentes threads em uma única unidade de trabalho, a concorrência estruturada pode ajudar a eliminar riscos comuns decorrentes de cancelamento e desligamento, como vazamentos de threads e atrasos de cancelamento.
  • JEP 481: Scoped Values (Third Preview): Ajuda os desenvolvedores a aumentar a facilidade de uso, compreensibilidade, desempenho e robustez de seus projetos ao permitir o compartilhamento de dados imutáveis dentro e entre threads.

Atualizações de Desempenho e Runtime

  • JEP 474: ZGC: Modo Generacional por Padrão: Ajuda os desenvolvedores a aumentar a eficiência ao mudar o modo padrão do Z Garbage Collector (ZGC) para o modo generacional, que reduz os recursos e custos de manutenção necessários para suportar dois modos diferentes.

Ferramentas

  • JEP 467: Comentários de Documentação Markdown: Ajuda os desenvolvedores a aumentar a eficiência e produtividade ao permitir que comentários de documentação Javadoc sejam escritos em Markdown em vez de apenas em HTML e tags Javadoc @. Ao permitir o uso da sintaxe Markdown em comentários de documentação junto com elementos HTML e tags JavaDoc, os desenvolvedores podem escrever e ler mais facilmente comentários de documentação de API em forma de código-fonte sem impactar negativamente a interpretação dos comentários de documentação existentes.

Gestão

  • JEP 471: Deprecate the Memory-Access Methods in sun.misc.unsafe for Removal: Oferece aos desenvolvedores um conjunto de ferramentas mais simplificado ao ajudar a entender quando suas aplicações dependem, direta ou indiretamente, dos métodos de acesso à memória em sun.misc.Unsafe, que está previsto para remoção em uma versão futura.

Para mais detalhes sobre os recursos do Java 23, leia o post técnico do blog do Java 23 (em inglês).

*Fonte: Oracle


Leia também