A diferença entre iguais e == em java
Os tipos de dados em Java podem ser divididos em duas categorias:
1. Tipo de dados básico, também conhecido como tipo de dados primitivo. Byte, curto, char, int, longo, flutuante, duplo, booleano
A comparação entre eles, aplicando um sinal duplo (==), é comparado aos seus valores.
2.Compound Data Type (classe)
Quando eles se comparam com (==), eles comparam seu endereço de armazenamento na memória. Portanto, a menos que sejam objetos do mesmo novo, o resultado após a comparação é verdadeiro, caso contrário, o resultado após a comparação é falso. Todas as classes em Java herdam do objeto de classe base. Um método de igual é definido na classe base no objeto. O comportamento inicial desse método é o endereço de memória do objeto de comparação, mas em algumas bibliotecas de classes, esse método é substituído. Por exemplo, string, número inteiro e data têm sua própria implementação nessas classes e não são mais o endereço de armazenamento da classe de comparação na memória da heap.
Para comparar a comparação entre os tipos de dados compostos, sem substituir o método igual, sua comparação é baseada no valor do endereço do local de armazenamento na memória. Como o método igual de objeto também é comparado com um signo duplo (==), o resultado após a comparação é o mesmo que o resultado do sinalização dupla (==).
A diferença entre Java é igual e =, ==
1. A diferença entre == e é igual
1. == é o operador
2. Equals é um método de objeto de string
Geralmente existem dois tipos de comparações
1. Comparação dos tipos de dados básicos
2. Comparação de objetos de referência
1. Comparação dos tipos de dados básicos
== e iguais comparar se os valores são iguais, se forem iguais, é verdade, caso contrário, é falso
2. Comparação de objetos de referência
== e iguais são comparados se os endereços na memória da pilha são iguais. Se for igual, é verdade, caso contrário, é falso.
Perceber:
1. String é um tipo de dados de referência especial. == compara se o endereço de referência do objeto String é o mesmo e é igual a se o conteúdo na pilha é consistente.
String ss = new String ("ABC"); String sss = new string ("abc"); if (ss == sss) {System.out.println ("ss == sss é verdadeiro"); } if (ss.equals (sss)) {System.out.println ("SS é igual a SSS é verdadeiro"); }Saída do console:
SS! = SSS
SS é igual a SSS
Indica que os endereços de memória de SS e SS na pilha são diferentes, mas o conteúdo na pilha são os mesmos.
String ss = new String ("ABC");
String ssss = ss;
// julga se os endereços de referência de SS e SSSS na pilha são os mesmos se (ss == ssss) {System.out.println ("ss == ssss"); } else {System.out.println ("ss! = ssss"); } // julgue se o conteúdo de SS e SSSS na pilha são os mesmos se (ss.equals (ssss)) {System.out.println ("SS é igual a ssss"); } else {System.out.println ("SS não é igual a SSSS"); }Saída do console:
ss == ssss
SS é igual a SSSS
Isso mostra que SS e SSSS são os mesmos objetos e que eles têm o mesmo conteúdo na pilha
2. Comparação de objetos de referência
Testbean obj1 = new testBean (); Testbean obj2 = new testBean (); Testbean obj3 = obj1; if (obj1 == obj2) {System.out.println ("obj1 == obj2"); } else {System.out.println ("obj1! = obj2"); } if (obj1 == obj3) {System.out.println ("obj1 == obj3"); } else {System.out.println ("obj1! = obj3"); }Saída do console:
obj1! = obj2
obj1 == obj3
Isso significa que obj1 e obj2 não são o mesmo objeto, e o endereço de referência na pilha é diferente
obj1 e obj3 são os mesmos objetos, e o endereço de referência na pilha é o mesmo
2. A diferença entre = e igual ==
= Representa a atribuição, ou seja, atribua o valor à direita de = à variável à esquerda. iguais e == são as operações
Obrigado pela leitura, espero que isso possa ajudá -lo. Obrigado pelo seu apoio a este site!