Java 25: o que há de novo na nova versão LTS
Aprofundamento CEVIU
Aprofundamento
O Java 25, lançado em 16 de setembro de 2025, é a nova versão LTS do JDK, sucedendo o Java 21 com cinco anos mínimos de suporte, e até oito anos de suporte Premier para usuários do Oracle JDK. Ele traz 18 JEPs, sendo 7 finalizados (como JEP 519, JEP 515, JEP 521, JEP 506), além de recursos em pré-visualização (JEP 507, JEP 502) e incubação (JEP 508). Diferente de versões anteriores com mudanças sintáticas radicais, o Java 25 prioriza refinamentos de runtime e produtividade: redução de overhead de memória via Compact Object Headers (JEP 519), aquecimento acelerado por AOT profiling (JEP 515) e ergonomia de linha de comando (JEP 514), e o coletor Generational Shenandoah (JEP 521), agora finalizado e com pausas mais previsíveis em cargas mistas.
Na linguagem, destaca-se o método main de instância (JEP 512), que dispensa declaração de classe e modificadores, e importações de módulos em uma única linha (JEP 511). As APIs criptográficas ganharam suporte nativo a PEM (JEP 470, ainda em pré-visualização) e à derivação de chaves com PBKDF2 e Argon2 (JEP 510). O Scoped Values (JEP 506), agora finalizado, oferece alternativa segura ao ThreadLocal para propagação de contexto imutável entre threads. Já o Vector API (JEP 508) entra em sua décima rodada de incubação, mantendo foco em operações SIMD para IA e criptografia.
Por que isso importa
Para equipes que operam em cloud, containers ou serverless, o Java 25 resolve problemas reais: menor cold start graças ao AOT profiling reutilizável, footprint reduzido no heap (menos pressão sobre GC), e GC com pausas mais estáveis, tudo isso impacta diretamente custo operacional, escalabilidade e SLOs. A descontinuação do suporte a x86-32 (JEP 503) não é só técnica: elimina um vetor de manutenção e permite otimizações internas da JVM assumindo arquitetura 64-bit como padrão. Para desenvolvedores, as simplificações sintáticas (main de instância, importações de módulo) reduzem boilerplate sem sacrificar segurança ou compatibilidade, útil em prototipagem, ensino e microsserviços leves. E o Scoped Values finalizado dá base sólida para frameworks modernos de observabilidade e tracing sem os riscos de vazamento de ThreadLocal.
Impacto para desenvolvedores
Se você usa Java 21 hoje, a migração para Java 25 é viável com ganhos mensuráveis em startup, memória e GC, especialmente em ambientes com autoscaling agressivo (EKS HPA, Fargate). Mas atenção: recursos em preview (como JEP 507 e JEP 502) exigem --enable-preview e podem mudar; evite-os em produção crítica. Bibliotecas que dependem de detalhes internos da JVM (ex.: manipulação direta de cabeçalhos de objeto ou GC específico) devem ser testadas rigorosamente, JEP 519 e JEP 521 alteram comportamentos de baixo nível. Para aproveitar o AOT profiling, perfis devem ser coletados em ambientes reais ou representativos, não em microbenchmarks. E se sua stack já usa BouncyCastle para PEM ou KDF, vale avaliar a substituição gradual pelas APIs nativas (JEP 470 e JEP 510), mas só após validar compatibilidade com seus fluxos de certificação e assinatura.
Perguntas frequentes
Quando o Java 25 foi lançado?
O Java 25 foi lançado oficialmente em 16 de setembro de 2025. É uma versão Long-Term Support (LTS), sucedendo o Java 21 e com garantia mínima de cinco anos de suporte.
O que é o Generational Shenandoah no Java 25?
É o coletor de lixo finalizado no Java 25 (JEP 521). Ele adiciona um modelo geracional ao Shenandoah GC, melhorando throughput e tornando as pausas de coleta mais previsíveis, especialmente útil em aplicações com alocação mista e alta taxa de criação de objetos.
O Java 25 ainda suporta x86 de 32 bits?
Não. O suporte para arquiteturas x86 de 32 bits foi descontinuado no Java 25 (JEP 503). A versão exige sistemas de 64 bits, alinhando-se à realidade atual de infraestrutura e permitindo otimizações internas na JVM.
O que são Scoped Values no Java 25?
Scoped Values (JEP 506) é um recurso finalizado que permite propagar dados imutáveis entre threads e seus filhos de forma segura e eficiente, sem os riscos de vazamento e overhead do ThreadLocal. É parte do Projeto Loom e já está pronto para uso em produção.
Fontes
- deviniciative.wordpress.comfonte original
- Categoria
- CEVIU Web Dev
- Publicado
- 17 de junho de 2026
- Editoria
- CEVIU Web Dev
