Maison >Java >javaDidacticiel >Quand dois-je utiliser « .equals() » au lieu de « == » en Java ?

Quand dois-je utiliser « .equals() » au lieu de « == » en Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-17 06:53:25173parcourir

When Should I Use `.equals()` Instead of `==` in 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 :

  • Il garantit l'égalité des valeurs, quelle que soit l'identité de l'objet.
  • Il permet une logique de comparaison personnalisée via remplacements.
  • Cela permet d'éviter d'éventuelles exceptions de pointeur nul lorsque les deux objets peuvent être nuls.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn