E foi lançado o Java SE 23 com melhorias de desempenho, e mais. Confira as novidades dessa importante atualização.
Java é uma das linguagens de programação mais populares por aí. Mas não apenas isso, também consiste em uma plataforma de software altamente popular entre os desenvolvedores.
Além de tudo isso, é uma linguagem muito robusta que tolera erros em tempo real através de exceções. E por isso, muitas empresas confiam no Java para implantar seu software altamente confiável. Java também é necessário para executar programas não tão populares na área de trabalho.
E, há poucos dias, a Oracle anunciou o lançamento da nova versão do Java SE 23.
Novidades do Java SE 23
Lançada como versão de suporte regular (você receberá atualizações até a próxima versão). Versões LTS, como Java SE 21 e Java SE 17, terão suporte estendido até 2031 e 2029, respectivamente, enquanto Java SE 8 e SE 11 continuarão a receber suporte estendido até 2030 e 2032.
Dentre as 23 novidades do Java SE 23, destaca-se a ativação padrão do Generational Z Garbage Collector, modo de operação generativo que separa o processamento de objetos.
Isso melhora a eficiência da limpeza de objetos, reduz a carga da CPU, o consumo de memória e o risco de bloqueios de alocação de recursos.
Outra novidade é a inclusão de suporte a Markdown no JavaDoc, que facilita a documentação do código ao permitir o uso de Markdown em vez de tags HTML combinadas com JavaDoc.
No Java SE 23 o padrão de correspondência também foi aprimorado para suportar tipos primitivos, permitindo seu uso na declaração instanceof e em blocos switch.
Isso permite que tipos primitivos, como int ou byte, sejam manipulados diretamente nas estruturas de fluxo de controle, melhorando a clareza e a funcionalidade do código.
Java SE 23 também introduz suporte preliminar para a instrução module import com import module M, permitindo importar todos os pacotes exportados por um módulo específico em uma única linha.
Outro aspecto importante é a atualização para JavaFX 23, plataforma aprimorada para desenvolvimento de interfaces gráficas. Junto com isso, o compilador GraalVM JIT foi integrado ao JDK principal da Oracle, oferecendo maior desempenho e otimização de tempo de execução.
Já o GraalVM, sua nova versão traz suporte para execução de aplicações nas mais diversas linguagens, além de linguagens que geram código LLVM, como C, C++ e Rust.
Esta versão melhora o consumo de memória, reduz o tamanho do código executável e fornece suporte para incorporação de Python e WebAssembly em código Java por meio de compilação JIT.
Por outro lado, é apresentada a oitava prévia da API Vector em Java SE 23, que apresenta funções avançadas para realizar cálculos vetoriais que aproveitam as instruções SIMD nos processadores x86_64 e AArch64.
Esta API permite que os desenvolvedores controlem explicitamente a vetorização das operações, em oposição à vetorização automática oferecida pelo compilador HotSpot JIT. Isso melhora o desempenho ao processar dados em paralelo.
Uma segunda implementação preliminar de uma API Stream estendida também foi introduzida, permitindo a definição de operações intermediárias personalizadas, úteis quando as transformações de dados padrão não são suficientes.
Das outras mudanças que conheço se destacam nesta nova versão:
- Os métodos para acessar memória externa (fora da JVM) fornecidos pela classe sun.misc.Unsafe foram marcados como obsoletos e estão planejados para serem removidos em versões futuras.
- A classe java.io.Console agora inclui novos métodos como format, printf, readPassword e readLine.
- É apresentada uma segunda implementação preliminar da API Class-File, que facilita a análise, geração e conversão de arquivos de classe Java, permitindo maior flexibilidade na manipulação de bytecode.
- Classes e métodos declarados implicitamente permitem simplificar seu código, eliminando a necessidade de especificar declarações públicas ou estáticas para métodos principais.
- Está incluída uma terceira implementação de Valores com Escopo, uma nova maneira de compartilhar dados imutáveis entre threads de forma mais eficiente, especialmente em ambientes onde um grande número de threads virtuais é usado.
- Uma terceira prévia da API Structured Concurrency foi proposta no Java SE 23, que visa simplificar o desenvolvimento de aplicações multithread. Esta API permite lidar com múltiplas tarefas executadas em diferentes threads de forma mais controlada e coerente, tratando-as como se fossem um único bloco de código.
Para saber mais sobre essa versão do Java SE, acesse a nota de lançamento.
Como instalar ou atualizar o Java SE
Para os interessados em instalar a nova versão do Java SE 23, saiba que as builds (JDK, JRE e Server JRE) já estão prontas para Linux, Windows e macOS.