String

Amigos,
Sei e entendi o resultado da seguinte situação abaixo:

String s = new String("ola"); 
String s2 = new String("ola");
s == s2; // false, compara a referencia
s.equals(s2); // true, compara o valor alocado.

Agora aqui, o porque do resultado ?

String p = "vai"; 
String t = "vai"; 
p == t;// true
p.equals(t); // true

Obrigado.

Por que existe um pool de Strings…

Dá uma lida aqui

T+

Devido ao pool de string em java.

//Aqui ele instancia p,pois não existe nenhuma instância String chamada "vai" no pool
String p = "vai"

//Adiante ele vê que já existe uma instancia String chamada vai e t passa a referenciar o mesmo objeto que p referencia
String t = "vai";

Espero que tenha ajudado!
Qualquer coisa dá um grito!!
Valew!!