Java · Intermediário · Inglês · Técnico
String pool
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()); // trueExemplos
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