[Java Silver] À propos de la méthode equals

Voici un résumé des méthodes d'égalité à retenir lorsque vous étudiez Java Silver.

Quelle est la méthode égale?

méthode equals

La méthode equals est une méthode définie dans la ** classe java.lang.Object **.

Comportement normal

a.equals(b);

Vérifiez si l'instance stockée dans la variable a et l'instance stockée dans la variable b ont ** la même valeur ** ** (équivalence) **

String a = "abc";
String b = new String("abc");

System.out.println(a == b); //false est retourné
System.out.println(a.intern() == b.intern()); //renvoie vrai

En effet, la méthode interne est une méthode permettant de rechercher et de réutiliser une chaîne en mémoire, y compris un pool de constantes. Un pool de constantes signifie que lorsqu'un ** caractère littéral ** réapparaît dans le programme, ** les références à la même instance de chaîne créée dans le passé sont réutilisées **.

Méthode Equals de la classe Object

La méthode equals est définie dans la classe Object, donc chaque classe l'a. Cependant, seule la méthode equals de la ** classe Object ** est définie pour déterminer ** l'identité ** plutôt que l'équivalence. La définition est la suivante.

public boolean equals(Object obj){
   return (this == obj);
}

Puisque la ** méthode de confirmation d'équivalence ** diffère pour chaque classe, on suppose que la méthode equals est ** remplacée et utilisée **.

Qu'il s'agit d'une méthode définie dans la classe java.lang.Object

Remplacez la méthode définie dans la ** classe java.lang.Object ** comme ** méthode par défaut ** dans ** interface ** → ** Erreur de compilation **

Par conséquent, lors de la substitution de la méthode equals, elle doit être remplacée par ** class **.

** * Liste des méthodes définies dans la classe java.lang.Object ** スクリーンショット 2020-10-04 18.36.43 1.png

NullPointerException ne se produit pas même si null est utilisé comme argument

Passer null à la méthode equals ne donne pas lieu à une NullPointerException


Document officiel

x.equals (null) renvoie false.

De <Exemple de comparaison de caractères nuls ou vides avec Java est égal à>

Quand a.equals (b), si a est nul, une NullPointerException se produira. Lorsque a.equals (b), si a n'est pas nul et b est nul, false est renvoyé. Objects.equals (a, b) ajouté dans Java7 ne génère pas d'exception NullPointerException même si a et b sont nuls.

référence

Exemple de comparaison de caractères nuls ou vides avec Java est égal à

Recommended Posts

[Java Silver] À propos de la méthode equals
À propos de la liaison de méthode Java
A propos des méthodes de fractionnement (Java)
[Java Silver] À propos de l'initialisation
À propos de l'héritage (Java Silver)
Mémo de la méthode d'étude Java Silver
[Java Silver] Comment générer un tableau
Méthode Java
Méthode Java
[Java] méthode
[Java] méthode
[Java débutant] == opérateur et méthode equals
Mes réflexions sur la méthode d'égalité (Java)
À propos de l'interface Java
[Java] À propos des fonctionnalités de Java 12
Comment passer l'examen Java Silver et comment apprendre
Mémo Java Silver
[Java] À propos des tableaux
[Java] Résumez comment comparer avec la méthode equals
Comment utiliser la méthode de soumission (Java Silver)
Référence de la méthode Java8
Où est Java
À propos des fonctionnalités Java
À propos de la méthode
[Java] méthode forEach
À propos des threads Java
Interface [Java]
À propos de la classe Java
À propos des tableaux Java
À propos de l'héritage Java
À propos de l'interface, interface java
référence de la méthode java8
[Java] Méthode aléatoire
Étudier Java Silver 1
[Java] méthode de fractionnement
À propos de Java Var
À propos de Java Literal
À propos des commandes Java
Comment utiliser la méthode replace () (Java Silver)
[Test de qualification] Résumé de la méthode d'apprentissage Java SE 8 Silver
À propos de la sortie du journal Java
Sortie sur la méthode, partie 2
À propos de l'interface fonctionnelle Java
À propos de Aucune erreur de méthode
Java, à propos d'un tableau à deux dimensions
Java SE8 Silver réussi
À propos de la division de classe (Java)
Méthode de connexion JAVA DB
java bronze argent passé
À propos de [Java] [StreamAPI] allMatch ()
À propos de la classe Java StringBuilder
[Java] À propos de la classe Singleton
Journée d'étude Java Silver 1
Mémo d'apprentissage Java (méthode)
Expérience de passage Java Silver
Résumer l'héritage Java (Java Silver 8)
[Java] À propos des classes anonymes
Etudier Java 8 (voir méthode)
[java] Java SE 8 Silver Note