Sobes.tech
Junior — Middle

Poderia explicar o conceito de pool de strings e seu papel na gestão de memória em Java?

sobes.tech IA

Resposta da IA

O pool de strings (String Pool) em Java é um local especial na memória onde são armazenadas instâncias únicas de literais de strings. Isto permite poupar memória e acelerar a comparação de strings.

Quando cria uma string através de um literal, por exemplo:

String s = "olá";

Java coloca esta string no pool de strings. Se posteriormente for criada outra string com o mesmo valor, ela referenciará o objeto já existente no pool, em vez de criar uma nova.

Isto é importante para a gestão de memória, pois as strings são objetos frequentemente utilizados, e reutilizar as suas instâncias reduz a carga no coletor de lixo e diminui o consumo de memória.

Se uma string for criada através do construtor new String("olá"), ela é criada no heap, não no pool, e não será reutilizada automaticamente.

Para adicionar uma string ao pool, pode-se chamar o método intern():

String s1 = new String("olá");
String s2 = s1.intern(); // s2 referenciará a string do pool