ExpertiDict

Java · Intermediário · Inglês · Técnico

String pool

/ˈstrɪŋ puːl/substantivo

Tabela mantida pela JVM com Strings literais únicas. Literais iguais apontam para o mesmo objeto, o que economiza memória e explica o comportamento do ==.

Onde usar

Entra em perguntas de entrevista sobre literais versus new String e no uso de intern() para reduzir duplicatas.

Em código

String a = "java";
String b = "java";
String c = new String("java");
System.out.println(a == b);          // true
System.out.println(a == c);          // false
System.out.println(a == c.intern()); // true

Exemplos

Both literals point to the same object in the String pool.

Os dois literais apontam para o mesmo objeto no String pool.

new String creates a copy outside the pool.

new String cria uma cópia fora do pool.

Cuidado

Nunca use == para comparar o conteúdo de Strings, mesmo que funcione com literais; use equals.

Sinônimos

pool de strings

Veja também

Todos os termos de Java