Maison  >  Article  >  Java  >  Que signifie égal en Java

Que signifie égal en Java

下次还敢
下次还敢original
2024-05-09 06:42:18749parcourir

La méthode

equals compare les valeurs des objets Java pour l'égalité. Ses principes de fonctionnement comprennent : (1) une comparaison de références pour déterminer si les objets se trouvent dans le même emplacement mémoire ; (2) une comparaison de classes pour vérifier si les types d'objets sont les mêmes (3) une comparaison de champs pour comparer les valeurs de champ une par une ; Afin de comparer correctement les objets personnalisés, la méthode égale doit être remplacée, en suivant les directives de réflectivité, de symétrie, de transitivité, de cohérence et de gestion des valeurs nulles. La méthode égale diffère de l'opérateur == en ce sens qu'elle compare uniquement les références d'objet, tandis que la méthode égale compare les valeurs réelles des objets.

Que signifie égal en Java

La signification d'égaux en Java

equals est une méthode en Java utilisée pour comparer si deux objets sont égaux. Il s'agit d'une méthode d'instance remplacée par la classe Object qui est utilisée pour déterminer si deux objets ont la même valeur. Object 类的实例方法,用于确定两个对象是否具有相同的值。

equals 方法的工作原理

当调用 equals 方法时,它会执行以下步骤:

  1. 引用比较:首先,它会检查两个对象是否是同一个对象(即,它们是否引用同一个内存位置)。如果是,则对象相等。
  2. 类比较:如果两个对象不是同一个对象,则 equals 方法会检查它们是否是同一类。如果不是,则对象不相等。
  3. 字段比较:如果两个对象是同一类,equals 方法会比较它们的字段。它会逐个比较字段值,如果所有字段值都相等,则对象相等。

重写 equals 方法

为了使自定义对象能够正确比较,需要重写 equals 方法。重写时应遵循以下准则:

  • 反射性:对象始终应该与自身相等。
  • 对称性:如果 a.equals(b)true,则 b.equals(a) 也应该为 true
  • 传递性:如果 a.equals(b)true,并且 b.equals(c)true,则 a.equals(c) 也应该为 true
  • 一致性:只要两个对象的值相等,equals 方法在每次调用时都应返回相同的结果。
  • 空值处理:如果要允许空值,则 equals 方法应正确处理空值。

equals 和 == 的区别

== 运算符用于比较两个对象的引用是否相等,而 equals 方法用于比较两个对象的实际值是否相等。对于基本类型(如 intdouble),==equals 运算符的行为相同。但是,对于对象类型(如 StringDate),== 仅比较对象引用,而 equals

🎜Comment fonctionne la méthode equals🎜🎜🎜Lorsque la méthode equals est appelée, elle effectue les étapes suivantes : 🎜
  1. 🎜Comparaison de référence : 🎜Tout d'abord, elle vérifie que les deux objets sont le même objet (c’est-à-dire font-ils référence au même emplacement mémoire). Si oui, les objets sont égaux.
  2. 🎜Comparaison de classes : 🎜Si deux objets ne sont pas le même objet, la méthode equals vérifie s'ils sont de la même classe. Sinon, les objets ne sont pas égaux.
  3. 🎜Comparaison de champs : 🎜Si deux objets sont de la même classe, la méthode equals comparera leurs champs. Il compare les valeurs des champs une par une et si toutes les valeurs des champs sont égales, les objets sont égaux.
🎜🎜Remplacer la méthode equals🎜🎜🎜Afin de permettre la comparaison correcte des objets personnalisés, vous devez remplacer la méthode equals. Les directives suivantes doivent être suivies lors du remplacement : 🎜
  • 🎜Réflectivité : 🎜Un objet doit toujours être égal à lui-même.
  • 🎜Symétrie : 🎜Si a.equals(b) est true, alors b.equals(a) devrait être également true.
  • 🎜Transitivité : 🎜Si a.equals(b) est true, et b.equals(c) est true, alors a.equals(c) doit également être true.
  • 🎜Cohérence : 🎜Tant que les valeurs de deux objets sont égales, la méthode equals doit renvoyer le même résultat à chaque fois qu'elle est appelée.
  • 🎜Gestion des valeurs nulles : 🎜Si vous souhaitez autoriser les valeurs nulles, la méthode equals doit gérer correctement les valeurs nulles.
La différence entre 🎜🎜equals et == 🎜🎜🎜== est utilisée pour comparer si les références de deux objets sont égales, tandis que equals code> La méthode est utilisée pour comparer si les valeurs réelles de deux objets sont égales. Pour les types primitifs (tels que <code>int ou double), les opérateurs == et equals se comportent de la même manière. Cependant, pour les types d'objet (tels que String ou Date), == compare uniquement les références d'objet, alors que est égal à méthode La valeur de l'objet de comparaison. 🎜

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