Quando o construtor da classe é chamado, uma de suas funções é essa : alocar memória para um novo objeto. Foi o que aconteceu no seu exemplo, vc chamou o construtor para os dois objetos. Para testar, faça o seu if assim :
if (!sb.equals(s1))
vai ver que dessa forma vai imprimir o "ok" , pois os objetos são diferentes.
Até mais.
Marcio Adriano Batista Leal wrote:
Gostaria de Saber porque não apresenta a mensagem OK, pois estou comparando dois Objetos identicos.
public class testestring { public static void main(String args[]) { StringBuffer sb = new StringBuffer("abc"); StringBuffer s1 = new StringBuffer("abc"); if (sb.equals(s1)) { System.out.println("OK"); } }
}
_________________________________________________________________ MSN Hotmail, o maior webmail do Brasil. http://www.hotmail.com
------------------------------ 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] -------------------------------------------------------------------------
------------------------------ 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] -------------------------------------------------------------------------