Ola Pessoal!!
Fazendo alguns testes aqui, cheguei a esse codigo que me deixou confuso!! Eu sei que existe o pool de Strings, e por isso mesmo fiquei confuso! As 3 referencias nao teriam que apontar para o mesmo objeto String? Sendo assim qualquer comparacao entre elas deveria retorna true! Estranho!
[code]public class Estranho {
public static void main(String[] args){
String s1 = "abcd";
String s2 = "abcd";
String s3 = "ab";
s3 = s3 + "cd";
System.out.println("S1:" + s1);
System.out.println("S2:" + s2);
System.out.println("S3:" + s2);
if (s1 == s2){
System.out.println("Referencias de S1 igual S2");
}
if (s1 == s3){
System.out.println("Referencias de S1 igual S3");
}
if (s2 == s3){
System.out.println("Referencias de S2 igual S3");
}
if (s1.equals(s2)){
System.out.println("Conteudo de S1 igual S2");
}
if (s1.equals(s3)){
System.out.println("Conteudo de S1 igual S3");
}
if (s2.equals(s3)){
System.out.println("Conteudo de S2 igual S3");
}
}
}[/code]
O resultado aqui na minha máquina é esse:
S1:abcd
S2:abcd
S3:abcd
Referencias de S1 igual S2
Conteudo de S1 igual S2
Conteudo de S1 igual S3
Conteudo de S2 igual S3
Obrigado