Duvida, comparação de objetos

[code]
public class TesteEquals {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	StringBuffer s1 = new StringBuffer("hello");
	StringBuffer s2 = new StringBuffer("hello");
	Float f1 = 9.0F;
	Double f2 = 9.0;
	
	System.out.println(f1.equals(f2));
	System.out.println(s1==s2);
	System.out.println(s1.equals(s2));
}

}[/code]

nao entendi o porq o 1 e o 2 teste da false…

o primeiro da false porque quando comparamos objetos de classes diferentes pelo equals ira retornar false. o segundo tambem da false porque s1 e s2 nao possuem a mesma referencia.
o terceiro ira retornar false porque a classe StringBuffer nao sobrescreve o metodo equals, entao ele ira funcionar que nem o ==.

Creio que seja isso.

Um wrapper só retorna true se for comparado a outro do mesmo tipo ou ao seu primitivo do mesmo tipo…
1o = false

O segundo é false, pq sao 2 objetos distintos…

e o 3o é false tb pq a classe StringBuffer não sobreescreve o método equals() então é simplesmente uma comparação == (igual ao anterior)

abraço…