Sobes.tech
Junior — Middle

Qual é o papel e a finalidade do Pool para literais de strings em Java?

sobes.tech IA

Resposta da IA

O Pool de literais de strings em Java é um armazenamento especial (String Pool) onde a JVM guarda instâncias únicas de literais de strings.

Objetivo:

  • Economia de memória: literais de strings iguais são armazenados numa única instância.
  • Melhoria no desempenho da comparação de strings: as strings do pool podem ser comparadas por referência (==), em vez de pelo conteúdo.

Quando um literal de string é criado, a JVM verifica se essa string já existe no pool. Se existir, retorna a referência à existente; se não, adiciona uma nova.

Exemplo:

String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2); // true, ambas as referências apontam para o mesmo objeto no pool

String s3 = new String("hello");
System.out.println(s1 == s3); // false, s3 é um novo objeto fora do pool

Assim, o Pool de literais de strings ajuda a gerir a memória de forma eficiente e a otimizar o trabalho com strings em Java.