Analyse comparative :
(Partage de vidéos d'apprentissage : cours java)
== : Sa fonction est de juger deux Les adresses des deux objets sont-elles égales ? Autrement dit : déterminer si deux objets sont le même objet. (Les types de données de base comparent les valeurs et les types de données de référence == comparent les adresses mémoire).
equals() : Sa fonction est également de déterminer si deux objets sont égaux. Mais elle a généralement deux cas d'utilisation, comme suit :
Cas 1 : La classe ne couvre pas la méthode equals(). Ensuite, comparer deux objets de cette classe via equals() équivaut à comparer les deux objets via ==.
Cas 2 : La classe remplace la méthode equals(). Généralement, nous remplaçons la méthode equals() pour garantir que les contenus des deux objets sont égaux ; si leurs contenus sont égaux, true est renvoyé (c'est-à-dire que les deux objets sont considérés comme égaux).
Exemple de code :
public class test1 { public static void main(String[] args) { String a = new String("ab"); // a 为一个引用 String b = new String("ab"); // b 为另一个引用,对象的内容一样 String aa = "ab"; // 放在常量池中 String bb = "ab"; // 从常量池中查找 if (aa == bb) // true System.out.println("aa==bb"); if (a == b) // false,非同一对象 System.out.println("a==b"); if (a.equals(b)) // true System.out.println("aEQb"); if (42 == 42.0) // true System.out.println("true"); } }
La méthode égale de String a été remplacée, car la méthode égale de l'objet compare l'adresse mémoire de l'objet, tandis que la méthode égale de String compare la valeur de l'objet. Lors de la création d'un objet de type String, la machine virtuelle recherche dans le pool de constantes s'il existe un objet existant avec la même valeur que celui à créer, et si c'est le cas, l'assigne à la référence actuelle. Sinon, recréez un objet String dans le pool de constantes.
Recommandations associées : Démarrez avec 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!