Maison >Java >JavaBase >La différence entre égal et '==' en Java

La différence entre égal et '==' en Java

王林
王林original
2019-11-19 17:03:352110parcourir

La différence entre égal et '==' en Java

Différence :

== Ce qui est comparé est l'adresse mémoire (tas) de l'objet stockée dans la mémoire variable (pile), utilisé pour déterminer si les adresses des deux objets sont les mêmes, c'est-à-dire si elles font référence au même objet. Ce qui est comparé est le véritable fonctionnement du pointeur.

equals est utilisé pour comparer si le contenu de deux objets est égal. Puisque toutes les classes héritent de la classe java.lang.Object, elle est applicable à tous les objets, si cette méthode n'est pas remplacée. la méthode de la classe Object est toujours appelée, mais la méthode égale dans Object renvoie le jugement de ==.

Les types de données en Java peuvent être divisés en deux catégories :

Types de données de base

byte, short, char, int, long, float, double, boolean

Les comparaisons entre les types de données de base nécessitent le double signe égal (==), car elles comparent les valeurs.

Type de données de référence

Interface, classe, tableau et autres types de données non basiques

La chaîne en Java appartient à Type de données de référence car String est une classe.

Lorsqu'ils comparent en utilisant (==), ils comparent leurs adresses de stockage en mémoire. Par conséquent, à moins qu'il ne s'agisse du même nouvel objet, le résultat de leur comparaison est vrai, sinon le résultat de la comparaison est faux. Parce qu'un nouvel espace mémoire tas sera ouvert à chaque fois

Entity entity = new Entity();
Entity entity1 = new Entity();
Entity entity2 = entity;
        
System.out.println(entity==entity2);
System.out.println(entity.equals(entity2));

System.out.println(entity.equals(entity1));
System.out.println(entity==entity1);

Résultat :

true
true
false
false

Résumé :

Pour les données composites, comparer les égaux entre les types. En l'absence de remplacement de la méthode égale, la comparaison entre eux est toujours la valeur de l'adresse de l'emplacement de stockage dans la mémoire, qui est la même que le résultat du double signe égal (==) ; , le résultat sera le même que la requête prioritaire.

== Fonction :

Type de base : la comparaison consiste à savoir si les valeurs sont les mêmes ;

Type de référence : la comparaison consiste à savoir si les valeurs d'adresse sont identiques ; le même. Le rôle de

est égal à :

Type de référence : par défaut, la valeur de l'adresse est comparée. Après avoir remplacé cette méthode, comparez si les valeurs des variables membres de l'objet sont les mêmes.

Tutoriel recommandé : Tutoriel d'introduction à Java

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
Article précédent:Comment configurer JavaArticle suivant:Comment configurer Java