AceReady
Java Core
Question 1 sur 15
Facile

Quelle est la différence entre == et equals() en Java ?

Réponse

== compare les références pour les objets (l'adresse en mémoire) et les valeurs pour les types primitifs. equals() est une méthode qui compare le contenu logique de deux objets, et son comportement par défaut dans Object revient à ==, sauf si la classe la surcharge (comme String ou les classes wrapper). Pour comparer le contenu de deux objets métier, il faut donc toujours surcharger equals() dans la classe elle-même.

Piège classique

Le piège classique est de comparer deux String avec == : ça fonctionne parfois par hasard grâce au string pool, mais ça casse dès qu'une des deux chaînes vient de new String(...) ou d'une concaténation dynamique.