[JAVA] Maintenant dans la troisième année, le malentendu que j'ai remarqué est la différence entre la méthode equals et ==

** J'ai mal compris. </ font> **

Désormais, il y a environ 3 ans ...

Quand j'ai participé à un projet de développement chez JAVA avec des connaissances vides que je ne connaissais même pas les caractères de la langue ...

Tout en étudiant avec le manuel de JAVA, Secoseco, coder dans des projets de développement ...

Demande de tirage ... Pas bon ... Manuel ... Correction ... Demande de tirage ... Pas bon ... Correction ... google ... Pas bon ...

J'ai travaillé dans un tel état.

À ce moment-là, un mot de mon aîné ...

C'est probablement laissé dans mon esprit tout le temps.

** Utilisez la méthode equals pour comparer les chaînes . </ font> **

Un mot de mon aîné est correct.

Cependant, le japonais est difficile ...

Avec juste un peu de réflexion, cela semble être mauvais ou bon.

De façon inattendue, je m'en suis souvenu comme ça ...

** "Utilisez la méthode equals pour comparer des chaînes." == "Utilisez la méthode equals uniquement lors de la comparaison de chaînes." </ Font> **

Quelques mois plus tard, j'ai étudié pour l'examen JAVA certifié Oracle et j'ai obtenu une qualification.

Mais encore, les vieux souvenirs n'étaient pas réécrits.

Dans le livre de référence de qualification JAVA, j'ai écrit dans un mémo que "la classe wrapper est une méthode égale", j'ai donc remarqué que je ne comprenais pas pendant mes études.

Néanmoins ...

Puis je me suis demandé pourquoi il était normal de rester incompris.

Ce que j'ai remarqué, c'est qu'il y avait extrêmement peu d'occasions de «calculer des valeurs numériques» dans les projets antérieurs.

Cette fois, j'ai remarqué ce malentendu lorsque je suis allé aider au développement du système pour gérer un certain point.

Là, int a changé en Integer, Integer a changé en int, et il y a eu une tempête de boxe.

Les chiffres sont donc extrêmement sévères.

Là, j'ai remarqué.

** "Parce que c'est une chaîne, ce n'est pas une méthode égale!" </ Font> **

Quand··

Cependant, la raison pour laquelle cette erreur était clairement gravée dans mon esprit maintenant est probablement parce que j'ai expérimenté UT à plusieurs reprises.

-Si l'instance change, même si le contenu a la même valeur, il ne correspondra pas lors de la comparaison des objets.

Je me souviens quand je craignais que cela ne fonctionne pas lors de la comparaison d'objets les uns avec les autres lors de la comparaison des valeurs attendues et des résultats en utilisant Assert.

L'histoire embarrassante a été prolongée, mais la conclusion est que:

boolean result = false;
int primitiveA = 10;
int primitiveB = 10;

//Le résultat est vrai
result = primitiveA == primitiveB;

Integer integerA = new Integer(10);
Integer integerB = new Integer(10);

//Le résultat est faux
result = integerA == integerB;
//Le résultat est vrai
result = integerA.equals(integerB);

Parfois, il peut être nécessaire de revenir au début et de revoir les bases.

Recommended Posts