Michel,
Vc,
provavelmente, sabe que "String" não é um tipo primitivo e por isso quando vc
compara dois tipos não-primitivos com " == " vc está na realidade está
comparando as instãncias (referências) e não o seu conteúdo(como vc escreveu:
"...tenho o mótodo equals(String s)" ). Por
exemplo:
String
a1 = new String("A");
String a2 = new String("A");
a1 == a2 é false
agora
quando vc cria uma string assim:
String
a1 = "A";
String
a2 = "A";
a1==a2 é true
Isso
acontece por que, ao cirar uma String assim (String a1 = "A";), a string é armazenada em um
buffer de strings para que o seu uso seja mais ágil (particularidade da classe
String...) e quando elas são comparadas com "==" o
conteúdo é comparado caracter a caracter, e não suas
instâncias.
espero
ter ajudado,
Michel
wrote:
Olá galera!Para exemplificar minha dúvida, mostrarei dois exemplos:-------------EXEMPLO 1--------------public static void main(String args[]){String x = "100";String y = "100";if(x == y)System.out.println("IGUAL!!!")}------------EXEMPLO 2----------public static void main(String args[]){String x = "100";String y = Integer.toString(100);if(x == y)System.out.println("IGUAL!!!");}No exemplo 1, aparece na tela "IGUAL!!!", no exemplo 2 não aparece nada!Sei que para comparar duas Strings tenho o mótodo equals(String s), mas para fins de conhecimento, gostaria de saber por quê o 1º exemplo funciona e o 2º não.Obrigado.
------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------