Maison >Java >javaDidacticiel >Quand dois-je utiliser « .equals() » au lieu de « == » en Java ?
Comprendre la différence entre ".equals" et "=="
Les instructions de votre professeur pour utiliser .equals au lieu de == en Java soulève une distinction importante entre l'égalité de référence et l'égalité de valeur.
Égalité de référence (==)
L'opérateur == compare les références associées à deux objets. Il vérifie si les deux objets font référence au même emplacement mémoire. Ceci s'applique aux types non primitifs (tels que String, Integer, etc.), où chaque objet a une référence unique.
Exemple :
Integer o1 = 10; Integer o2 = 10; System.out.println(o1 == o2); // false
Même si o1 et o2 ont la même valeur, ce ne sont pas le même objet en mémoire. Par conséquent, == renvoie false.
Value Equality (.equals)
La méthode .equals, quant à elle, permet de comparer les valeurs des objets. Il vérifie si deux objets ont le même contenu, quelles que soient leurs références.
Exemple :
String x = "hello"; String y = new String("hello"); System.out.println(x.equals(y)); // true
Ici, x et y sont des objets différents mais ont le même valeur. .equals compare leurs valeurs et renvoie vrai.
Méthode de remplacement de .equals :
De plus, .equals peut être remplacé dans des classes personnalisées, vous permettant de définir votre propre logique pour comparaison de valeurs. Cela vous permet de personnaliser le comportement d'égalité pour des types spécifiques.
Pourquoi .equals est préféré :
L'utilisation de .equals est généralement préférée à == pour les raisons suivantes :
Dans l'exemple de votre professeur, .equals est recommandé pour comparer deux objets entiers car il garantit que le les objets ont la même valeur, même s'ils font référence à des emplacements mémoire différents.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!