== e .equals

5 respostas
J

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

5 Respostas

LPJava

veja assim:

equals = conteudo

== apontar

Quer um exemplo melhor? Iphone e Hi_phone pesquise por isso no mercadolivre. eles sao == e nao equals.

flw.

ViniGodoy

==, 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)
tauame

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

:slight_smile:

J

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?

julianofischer

Nessa caso x==z é true e x.equals(z) também é true.
Só para deixar mais claro pros mais desatentos.

Criado 20 de abril de 2010
Ultima resposta 22 de abr. de 2010
Respostas 5
Participantes 6