assim
System.out.print(1 == 2);
Isso mostra false, porque esta comparando se 1 é igual a 2, o que não e verdade.
System.out.print(1 != 2);
Isso mostra true, porque esta comparando se 1 é diferente de 2, o que é verdade.
== e != comparam valores, se vc usar isso para objetos, eles vão ver se a referencia das variaveis aponta para o mesmo objeto, se não apontar para o mesmo, o resultado vai ser diferente, mesmo que os atributos do objeto sejam iguais… por isso, para comparar objetos é usado um método que todo objeto tem chamado “equals”, esse método retorna um valor booleano dizendo se o objeto que invocou o método é igual ao objeto que foi passado pelo parâmetro:
System.out.print(obj1.equals(obj2));
Verifica se o obj1 é igual ao obj2, para saber se o obj1 é diferente do obj2 vc tem que usar um operador de negação, no caso o !
System.out.print(!obj1.equals(obj2));
Verifica se o obj1 é igual ao obj2, e depois inverte o resultado, logo se ele for igual (retornando true), vai negar e imprimir é false, e os objetos forem diferente (retornando false), vai negar e imprimir true… ou seja, o != para objetos é um equals com o operador ! na frente… que significaria algo do tipo: not equals.
Mas vcs precisam saber que como equals é um método, ele pode ser sobrescrito, o original dele la da classe Object é uma comparação de valor normal (obj1 == obj2), logo se vc criar uma classe normal que não sobrescreve equals, o seu equals vai ser simplesmente obj1 == obj2
é isso, da uma olhada nos operadores e no javadoc do método equals da classe Object…
flw