Nova versão traz propostas de aprimoramento do JDK que ajudam desenvolvedores a maximizar a produtividade e melhorar a linguagem Java
Melhorias no desempenho, estabilidade e segurança da plataforma ajudam organizações a acelerar o crescimento de seus negócios
Novos recursos em suporte à IA e criptografia pós-quântica serão destacados na conferência JavaOne 2025
AUSTIN, Texas —18 de Março de 2025
A Oracle anunciou hoje a disponibilidade do Java 24, a versão mais recente da linguagem de programação e plataforma de desenvolvimento número um do mundo. O Java 24 (Oracle JDK 24) oferece milhares de melhorias para ajudar os desenvolvedores a maximizar a produtividade e impulsionar a inovação. Além disso, melhorias no desempenho, na estabilidade e na segurança da plataforma ajudam as organizações a acelerar o crescimento de seus negócios. Saiba mais sobre o Java 24 na conferência JavaOne 2025 em Redwood Shores, Califórnia, de 18 a 20 de março de 2025.
“À medida que o Java se aproxima de seu 30º aniversário no final deste ano, ele continua a expandir seu conjunto de ferramentas para atender às necessidades em evolução dos desenvolvedores, incluindo recursos que dão suporte ao desenvolvimento de aplicações com tecnologia de IA”, disse Arnal Dayaratna, vice-presidente de pesquisa, desenvolvimento de software da IDC. “A ampla gama de recursos na nova versão ajudará a aumentar a produtividade dos desenvolvedores, permitindo que eles entreguem aplicações ricas em funcionalidades para suas organizações e clientes de forma mais rápida e eficiente. O lançamento do Java 24 ressalta que o Java é incomparável para o desenvolvimento de aplicações de missão crítica de nível empresarial em escala.”
“Nos últimos 30 anos, o Java forneceu aos desenvolvedores uma plataforma abrangente para criar e implementar aplicações que abordam uma ampla gama de casos de uso”, disse Georges Saab, vice-presidente sênior da Oracle Java Platform e presidente do conselho administrativo do OpenJDK. “Com mais de 20 novos recursos abrangendo todos os elementos do Java, incluindo novos recursos de IA e criptografia pós-quântica, o lançamento do Java 24 oferece aos desenvolvedores as ferramentas necessárias para criar aplicações inovadoras com infusão de IA. Como administradores do Java, estamos animados em trabalhar com a comunidade Java global para continuar entregando um fluxo constante de novos recursos com nossa cadência previsível de seis meses.”
Recursos de linguagem
JEP 488: Tipos primitivos em padrões, instanceof e switch (segunda prévia): Ajuda os desenvolvedores a aumentar a produtividade da programação em Java, tornando a linguagem mais uniforme e expressiva. Esse recurso ajuda a aprimorar a correspondência de padrões ao remover restrições relativas a tipos primitivos que os desenvolvedores encontram ao usar correspondência de padrões, instanceof e switch. Também permite padrões de tipos primitivos em todos os contextos de padrões e estende instanceof e switch para trabalhar com todos os tipos primitivos. Desenvolvedores de aplicações que integram inferência de IA serão especialmente beneficiados pelo suporte a tipos primitivos.
JEP 492: Corpos construtores flexíveis (terceira prévia): Ajuda os desenvolvedores a melhorar a confiabilidade do código por meio da introdução de duas fases distintas de prólogo e epílogo em um corpo construtor. Isso permite que os desenvolvedores coloquem mais naturalmente a lógica que eles atualmente devem fatorar em métodos estáticos auxiliares, construtores intermediários auxiliares ou argumentos de construtor. Além disso, preserva a proteção existente de que o código em um construtor de subclasse não pode interferir na instanciação da superclasse, tornando uma classe mais confiável quando os métodos são substituídos.
JEP 494: Declarações de importação de módulo (segunda prévia): Ajuda os desenvolvedores a melhorar a produtividade, permitindo que eles importem de forma rápida e fácil 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 a reutilização de bibliotecas modulares para todos os desenvolvedores e ajuda os iniciantes a usar bibliotecas de terceiros e classes Java básicas com mais facilidade, sem precisar aprender onde elas estão na hierarquia de pacotes. Esse recurso também beneficia desenvolvedores que buscam integrar lógica de negócios rapidamente com inferência de IA nativa, biblioteca ou chamadas de serviço.
JEP 495: Arquivos de origem simples e métodos principais de instância (quarta prévia): Ajuda os alunos a escrever seus primeiros programas sem precisar entender os recursos de linguagem projetados para programas grandes, oferecendo uma rampa de acesso suave para a programação em Java. Como resultado, educadores e instrutores podem introduzir conceitos gradualmente, e os alunos podem escrever declarações simplificadas para programas de classe única e expandir seus programas com recursos mais avançados à medida que suas habilidades aumentam. Além disso, desenvolvedores Java experientes podem escrever pequenos programas de forma sucinta e eficiente sem precisar usar ferramentas desenvolvidas para projetos maiores.
Bibliotecas
JEP 485: Stream Gatherers: Ajuda os desenvolvedores a se tornarem mais eficientes na leitura, escrita e manutenção de código Java, aprimorando a Stream API para oferecer suporte a operações intermediárias personalizadas, que permitem que os pipelines de fluxo transformem dados de maneiras que não são facilmente alcançáveis com as operações intermediárias integradas existentes.
JEP 484: API de arquivo de classe: Ajuda os desenvolvedores a melhorar a produtividade ao fornecer uma API padrão para analisar, gerar e transformar arquivos de classe Java e rastrear o formato de arquivo de classe definido pela especificação da Java Virtual Machine.
JEP 487: Valores com escopo (quarta prévia): Ajuda os desenvolvedores a aumentar a facilidade de uso, a compreensibilidade, o desempenho e a robustez de seus projetos, possibilitando o compartilhamento de dados imutáveis dentro e entre threads.
JEP 489: API de vetores (nona incubadora): Ajuda os desenvolvedores a melhorar a produtividade ao introduzir uma API para expressar computações de vetores que são compiladas de forma confiável em tempo de execução para instruções de vetores em arquiteturas de CPU suportadas. Como resultado, os desenvolvedores podem obter desempenho superior aos cálculos escalares equivalentes, que são frequentemente usados em cenários de inferência e computação de IA.
JEP 499: Simultaneidade estruturada (quarta prévia): Ajuda os desenvolvedores a melhorar a manutenibilidade, a confiabilidade e a observabilidade do código multithread ao simplificar a programação simultânea por meio de uma nova API para simultaneidade estruturada. Ao tratar grupos de tarefas relacionadas executadas em diferentes threads como uma só unidade de trabalho, a simultaneidade estruturada pode ajudar a reduzir riscos comuns decorrentes de cancelamento e desligamento, como vazamentos de threads e atrasos no cancelamento.
Bibliotecas de segurança
JEP 478: API de função de derivação de chave (prévia): Ajuda os desenvolvedores a se prepararem para ambientes emergentes de computação quântica, oferecendo segurança criptográfica para dados em trânsito. Isso melhora a confidencialidade e a integridade da comunicação.
JEP 496: Mecanismo de encapsulamento de chaves baseado em malha de módulo resistente a quantum: Ajuda a aumentar a segurança de aplicações Java ao fornecer uma implementação do mecanismo de encapsulamento de chaves baseado em malha de módulo resistente a quantum (ML-KEM). Esse recurso é um passo importante em direção à prontidão pós-quântica e à entrega eventual de suporte à criptografia pós-quântica (PQC) para a plataforma Java, já que mecanismos de encapsulamento de chaves são usados para proteger chaves simétricas em canais de comunicação inseguros usando criptografia de chave pública.
JEP 497: Algoritmo de assinatura digital baseado em módulo reticulado resistente a quantum: Ajuda a aumentar a segurança de aplicações Java ao fornecer uma implementação do algoritmo de assinatura digital baseado em módulo reticulado resistente a quantum (ML-DSA). Assim como no JEP 496, esse recurso é um passo importante em direção à prontidão pós-quântica e à eventual entrega de suporte PQC para a plataforma Java, já que assinaturas digitais são usadas para detectar modificações não autorizadas em dados e autenticar a identidade dos signatários. O ML-DSA foi projetado para proteger contra futuros ataques de computação quântica e foi padronizado pelo Instituto Nacional de Padrões e Tecnologia dos Estados Unidos (NIST) no FIPS 204.
Ferramentas
JEP 493: Link de imagens de tempo de execução sem JMODs: Ajuda os desenvolvedores a aumentar a eficiência ao permitir que a ferramenta jlink crie imagens de tempo de execução personalizadas sem usar os arquivos JMOD do JDK, o que pode reduzir o tamanho do JDK em aproximadamente 25%. Como resultado, os desenvolvedores podem vincular uma imagem de tempo de execução a partir de módulos, independentemente de esses módulos serem arquivos JMOD independentes, arquivos JAR modulares ou parte de uma imagem de tempo de execução vinculada anteriormente. Esse recurso deve ser habilitado quando o JDK for criado; ele não será habilitado por padrão e alguns fornecedores de JDK podem optar por não habilitar.
Atualizações de desempenho e tempo de execução
JEP 450: Cabeçalhos de objetos compactos (experimental): Ajuda os desenvolvedores a aumentar a produtividade reduzindo o tamanho dos cabeçalhos de objetos no HotSpot JVM entre 96 e 128 bits para 64 bits em arquiteturas de 64 bits. Isso ajuda a reduzir o tamanho do heap, melhorar a densidade de implementação e aumentar a localidade dos dados.
JEP 475: Extensão de barreira tardia para G1: Ajuda os desenvolvedores a aumentar a eficiência ao mudar a expansão das barreiras do coletor G1 do início do pipeline de compilação do C2 JIT para mais tarde, o que pode reduzir a sobrecarga se ocorrer após otimizações independentes de plataforma e alocação de registros. Ao simplificar a implementação das barreiras do coletor G1, esse recurso ajuda a aumentar a eficiência, a compreensibilidade, a resiliência e a qualidade do código gerado pelo C2.
JEP 483: Carregamento e vinculação de classes antecipados: Ajuda os desenvolvedores a aumentar a produtividade e melhorar o tempo de inicialização, tornando as classes de uma aplicação instantaneamente disponíveis em um estado carregado e vinculado quando a HotSpot Java Virtual Machine é iniciada. Esse recurso não requer o uso das ferramentas jlink ou jpackage e não exige nenhuma alteração na forma como as aplicações são iniciadas na linha de comando ou qualquer alteração no código de aplicações, bibliotecas ou estruturas. Como resultado, ele ajuda a estabelecer uma base para melhorias contínuas no tempo de inicialização e aquecimento.
JEP 490: ZGC: Remoção do modo não geracional: Ajuda os desenvolvedores a reduzir o custo de manutenção do suporte a dois modos diferentes ao remover o modo não geracional do Z Garbage Collector (ZGC).
JEP 491: Sincronia de threads virtuais sem fixação: Ajuda os desenvolvedores a aumentar a produtividade estendendo a escalabilidade do código Java e das bibliotecas que usam métodos e instruções sincronizados. Ao permitir que threads virtuais liberem seus threads de plataforma subjacentes, esse recurso dá aos desenvolvedores acesso a mais threads virtuais para gerenciar as cargas de trabalho de suas aplicações.
Código fonte
JEP 404: Shenandoah geracional (experimental): Ajuda os desenvolvedores a aumentar a produtividade ao aprimorar o coletor Shenandoah com recursos experimentais de coleta geracional que melhoram o rendimento sustentável, a resiliência a picos de carga e a utilização da memória.
JEP 479: Remover a porta x86 de 32 bits do Windows: Ajuda os desenvolvedores a aumentar a eficiência removendo o código-fonte e o suporte de compilação para a porta x86 de 32 bits do Windows, o que simplifica a infraestrutura de compilação e teste do JDK.
JEP 501: Descontinuação da porta x86 de 32 bits para remoção: Ajuda os desenvolvedores a aumentar a produtividade, descontinuando a porta x86 de 32 bits com a intenção de removê-la em uma versão futura. Isso ajuda os desenvolvedores a obter acesso a novos recursos que exigem suporte específico da plataforma sem precisar implementar fallbacks x86 de 32 bits.
Além disso, ao introduzir recursos modernos e seguros e, ao mesmo tempo, descontinuar e remover gradualmente recursos inseguros, a Oracle ressalta seu comprometimento em manter a integridade do Java e se alinhar às melhores práticas de desenvolvimento de software. A Oracle designou três recursos para remoção em uma versão futura do Java: JEP 472: Preparar para restringir o uso de JNI; JEP 486: Desabilitar permanentemente o Security Manager; JEP 498: Avisar sobre o uso de métodos de acesso à memória em sun.misc.Unsafe.
Os recursos da versão Java 24 são resultado da colaboração contínua entre a Oracle e outros membros da comunidade global de desenvolvedores Java por meio do OpenJDK e do Java Community Process (JCP). Para mais detalhes sobre os recursos do Java 24, leia a publicação técnica do blog Java 24.
Apoiando a comunidade Java global com a inovação na nuvem
O Java oferece maior inovação, desempenho, eficiência e economia de custos quando implementado na Oracle Cloud Infrastructure (OCI), que é uma das primeiras nuvens de hiperescala a oferecer suporte ao Java 24. Ao fornecer o Oracle Java SE, o Oracle GraalVM e o Java SE Subscription Enterprise Performance Pack sem custo adicional na OCI, o Java 24 ajuda os desenvolvedores a criar e implementar aplicações que rodam mais rápido, melhor e com custo-benefício otimizado.
O Oracle Java Universal SE Subscription oferece aos clientes o melhor suporte da categoria. Inclui o Java SE Subscription Enterprise Performance Pack, suporte de triagem para todo o portfólio Java, direito ao Oracle GraalVM, acesso aos recursos avançados do Java Management Service e a flexibilidade para atualizar no ritmo dos negócios dos clientes. Isso ajuda as organizações de TI a gerenciar a complexidade, reduzir os riscos de segurança e conter custos.
Citações de apoio
“Estou ansioso pelo refinamento adicional da API Java Vector no Java 24 para aprimorar ainda mais as aplicações de IA preditiva e generativa”, disse Frank Greco, presidente da NYJavaSIG. “Habilitar algoritmos de IA eficientes diretamente no Java ajuda a garantir que as aplicações de IA sejam altamente eficientes e escaláveis em várias plataformas de hardware modernas.”
“O Java 24 apresenta o Stream Gatherers, um aprimoramento poderoso que dá aos desenvolvedores controle refinado sobre como os elementos são agrupados e processados dentro dos fluxos”, disse Richard Fichtner, CEO da XDEV Software GmbH. “Isso torna as transformações complexas de dados mais expressivas e eficientes. Adoro o recurso porque ele elimina soluções alternativas como coletores personalizados ou dificuldades com flatMap, permitindo pipelines de fluxo mais legíveis e fáceis de manter.”
“Java é como um molho criado por um chef renomado, com ingredientes escolhidos cuidadosamente, fervidos apenas o suficiente para obter os melhores sabores”, disse o Dr. Venkat Subramaniam, fundador da Agile Developer, Inc. “Meus sabores favoritos atuais são API de stream gatherers, valores em escopo e simultaneidade estruturada.”
"A terceira prévia de construtores flexíveis no Java 24 é um recurso notável, pois será muito benéfico não ter que criar um método auxiliar privado para que eu possa fazer minhas chamadas para this/super em uma linha", disse Jeanne Boyarsky, desenvolvedora da CodeRanch. “O recurso de stream gatherers também é intrigante, e estou ansiosa para que as bibliotecas criem muitas novas operações intermediárias para usar.”
“Na JetBrains, estamos entusiasmados em fornecer suporte Java 24 no IntelliJ IDEA desde o primeiro dia”, disse Marit van Dijk, divulgadora do desenvolvimento Java na JetBrains. “Nosso compromisso em manter o ritmo com as melhorias mais recentes do Java ajuda a garantir que os desenvolvedores possam adotar perfeitamente os novos recursos valiosos, enquanto a capacidade de baixar o Java 24 diretamente no IDE torna a configuração fácil.”
Para saber mais sobre o Java e seu ecossistema global, acesse:
A Oracle oferece conjuntos integrados de aplicações, além de uma estrutura segura e autônoma na Oracle Cloud. Para obter mais informações sobre a Oracle (NYSE: ORCL), acesse www.oracle.com.
Marcas registradas
Oracle, Java, MySQL e NetSuite são marcas registradas da Oracle Corporation. A NetSuite foi a primeira empresa de nuvem, inaugurando a nova era da computação em nuvem.
Isenção de responsabilidade de produtos futuros
As informações acima têm o objetivo de traçar a direção dos nossos produtos em geral. Ela é destinada somente a fins informativos e não poderá ser incorporada a nenhum contrato. Não constitui um compromisso de entrega de qualquer tipo de material, código ou funcionalidade e não deve ser considerado em decisões de compra. O desenvolvimento, a liberação, a data de disponibilidade e os preços de quaisquer funcionalidades ou recursos descritos para produtos da Oracle estão sujeitos a mudanças e são de critério exclusivo da Oracle Corporation.