Os tipos primitivos se compara usando == a referencia não o objeto em si.
D
deniswsrosa
Tipos primitivos se deve comparar com == .
Se usa equals quando se compara tipos complexos como por exemplo, a comparacao de duas Strings:
ex
[quote] String test = “valorx”;
if(“valorx”.equals(test)){
//fazalgumacoisa
}
T
Trebloc2 likes
Na verdade == não é apenas para tipos primitivos, mas normalmente são usados mais para isso.
O == compara o conteúdo de variáveis, da forma que tipos primitivos guardam valores, tipos de objetos guardam endereços de memória dos objetos (referências).
Em algum momento de sua vida pode ser que seja necessário verificar se duas variáveis fazem referência ao mesmo objeto, daí um == seria útil (apesar que nesses casos o equals também retornaria true).
neste caso tanto faz o == ou equals? pois testei com os dois e nas duas formas o programa funcionou… pq?
Abs,
AS
}
T
Trebloc
As Strings são objetos bem interessantes em Java, pois em partes são tratadas como tipos primitivos.
Ao fazer
String a = "abc";
String b = "abc";
Você não tem 2 objetos, mas sim 2 variáveis apontando pro mesmo objeto String (“abc”).
Pra forçar a criação de 2 objetos, você pode fazer isso:
String a = new String("abc");
String b = new String("abc");
E
evertonsilvagomesjav
neste caso sim pq vc ta criando um objeto com uma String literal, e como nao existe objeto String criado com o nome "everton" nao tem como ele buscar no pool de Strings e sendo assim retorna false.
neste caso tanto faz o == ou equals? pois testei com os dois e nas duas formas o programa funcionou… pq?
funcionar , funciona. Se vc quer com isso dizer que compila e roda. Contudo ele imprime “ok2” e não “ok1” que seria o que vc espera.
== compara o valor das variáveis, não os objetos. Objetos são diferentes o conteúdo das variáveis é diferente mas o inverso não é verdade.
Como regra : sempre que comparar objetos use equals. String é um objeto. Use equals.