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.