Olá Amigos.
Até hoje eu não consigo entender os operadores == e .equals… não consigo assimilar.
Será que alguem tem alguma forma simples, prática e rápida de me fazer entender isso?
Grato
José Eduardo Venancio
Olá Amigos.
Até hoje eu não consigo entender os operadores == e .equals… não consigo assimilar.
Será que alguem tem alguma forma simples, prática e rápida de me fazer entender isso?
Grato
José Eduardo Venancio
veja assim:
equals = conteudo
== apontar
Quer um exemplo melhor? Iphone e Hi_phone pesquise por isso no mercadolivre. eles sao == e nao equals.
flw.
==, compara se duas variáveis apontam para o mesmo objeto.
equals, compara se duas variáveis contém o mesmo valor.
Você pode ter objetos diferentes com valores iguais. Por exemplo:
Integer x = new Integer(4);
Integer y = new Integer(4);
Note que x e y são objetos diferentes. Cada um foi criado com um new diferente, porém, ambos tem dentro deles o valor 4.
Então:
x != y, porém x.equals(y);
O que é diferente de fazer:
Integer z = x;
Nesse caso:
x == z e x.equals(z)
o operador “==” testa se as referências dos objetos são as mesmas (o endereço na memória), enquanto o “equals” testa se os valores destes objetos são os mesmos…
no java muitas coisas (como Strings e objetos de qualquer classe) são referenciadas pelo endereço na memória, e quando se deseja comparar os valores destas coisas, deve-se usar o método “equals”, pois o operador lógico “==” compara apenas se os endereços são os mesmos…
na apostila da caelum FJ11 tem uma parte que explica bem isso, acho que a página 36 dela pode te ajudar

Bom normalmente o == utiliza-se para comparar inteiros, do tipo
int i, k;
if(i == k){
}
E o .equals utiliza-se para comparar Strings, do tipo
String Bla, Blabla;
if(Bla.equals("Blabla");{
}
Nestes exemplos todos comparam o que está gravado nas variáveis, mas uma é aplicada a inteiros e outra a Strings. É assim ou estou enganado?
Nessa caso x==z é true e x.equals(z) também é true.
Só para deixar mais claro pros mais desatentos.