Java: Différence entre == et .equals()
Question de Invité | 23/09/2020 à 14:40
En Java, vous semblez pouvoir comparer une chaîne / string de deux manières différentes. Une fois avec == et une fois avec .equals().
J'ai testé les deux méthodes et les deux méthodes me donnent les mêmes résultats (TRUE si la chaîne est identique, FALSE sinon).
Alors, pourquoi y a-t-il pas deux méthodes pour faire la même chose? Ou y a-t-il effectivement une différence cachée et il y a des possibilités dans lesquelles on devrait préférer l'une des voies?
Sujets Connexes
Java: Split au point str.split(".") ne fonctionne pas
Question | 1 Réponse
Java: Conserver les Champs vides dans Split-Array
Conseil | 0 Commentaires
MySQL: Supprimer Données de Table - Différence entre TRUNCATE, DELETE et DROP
Tutoriel | 0 Commentaires
Java/Android: Comparaison de String s1==s2 ne fonctionne pas
Question | 1 Réponse
Java: IntToStr - Convertir un Nombre entier en String
Question | 1 Réponse
Java: Application Swing doit utiliser le Style du Système d'Exploitation
Question | 1 Réponse
Différence entre Tout Compris et Pension Complète
Question | 1 Réponse
Avis Important
Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.
Participer
Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.
La comparaison avec == et avec .equals() ne conduit au même résultat que si non seulement le contenu des variables comparées est égal mais aussi la référence des objets comparés.
Par exemple, en supposant que vous ayez deux variables chaîne ayant le même contenu mais des références différentes, la comparaison == renvoie néanmoins false:
Les variables a et b sont des objets indépendants et ont donc également des références indépendantes différentes même si leur contenu est le même. Par conséquent, la comparaison a == b renvoie FALSE.
Si nous voulons plutôt comparer le contenu, nous utilisons .equals(). Cela renvoie TRUE car les deux chaînes ont la valeur "abc".
La chaîne c a la même révérence que la chaîne a. Par conséquent, la comparaison avec == ainsi qu'avec .equals() retourne TRUE.
24/09/2020 à 22:47