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
Différence entre pesticide, fongicide et herbicide
Question | 1 Réponse
Différence entre le Climat et le Temps
Question | 2 Réponses
JavaScript: Saut de ligne - Quelle est la différence entre \ et \n?
Question | 1 Réponse
Différence entre Header Expires et Cache-Control
Question | 1 Réponse
Différence entre Volt, Watt et Ampère
Question | 1 Réponse
C#/.NET: Différence entre String et string
Question | 1 Réponse
Java: IntToStr - Convertir un Nombre entier en String
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