JDK 25: Aumento de Desempenho da String por meio da Dobra Constante do Hash Code

2025-05-02

O JDK 25 melhora significativamente o desempenho da classe String permitindo a dobra constante da função String::hashCode. Isso resulta em ganhos de velocidade substanciais, especialmente quando Strings são usadas como chaves em Maps estáticos e imutáveis, como em um cenário onde MethodHandles para chamadas nativas são acessados ​​por meio de chaves String. Benchmarks mostram uma melhoria de mais de 8x. Essa otimização é alcançada marcando o campo interno String.hash com a anotação @Stable. Isso permite que a JVM armazene em cache e reutilize o código hash, evitando o recálculo para códigos hash diferentes de zero. Embora um código hash zero possa dificultar essa otimização, uma correção futura é esperada.

Leia mais
Desenvolvimento

Um mergulho profundo na inicialização da JVM

2025-01-09

Billy Korando, da equipe Java da Oracle, publicou um artigo detalhado em 9 de janeiro de 2025, explorando os detalhes da inicialização da JVM. O artigo oferece uma visão aprofundada dos mecanismos internos de inicialização da JVM, fornecendo insights valiosos para desenvolvedores Java. Recomenda-se aos leitores que consultem a descrição do vídeo para obter mais informações.

Leia mais
Desenvolvimento Inicialização

Valhalla: A Reestruturação Épica do Java se Aproxima do Fim

2024-12-17

Após uma jornada de uma década, o Projeto Valhalla, a ambiciosa reestruturação do Java, está se aproximando do fim. Com o objetivo de preencher a lacuna entre classes e primitivos, o Valhalla introduz classes de valor que oferecem a conveniência de codificação das classes com o desempenho dos primitivos, resultando em um layout de memória plano e compacto. Na Devoxx 2024, o arquiteto de linguagem Java Brian Goetz forneceu uma atualização abrangente, destacando recursos-chave como classes de valor, tipos com restrição de nulos, análise de atribuição definida aprimorada e inicialização estrita.

Leia mais
Desenvolvimento Classes de Valor