En Java, tu as 2 grandes familles : les objets et les types primitifs.
Les types primitifs sont les types int, long, float, double ...
Les Objets, c'est le reste.
Grosso-modo : tout les types commençant par une majuscule SONT des Objets, tout les types commençant par des miniscules sont des types primitifs.
Pour tester l'égalité entre 2 types primitifs, on passe par "==", et celui-ci compare leur valeur respective, renvoyant true ou false, comme une égalité "normale".
Pour tester l'égalité entre 2 objets, on peut utiliser "==", mais ce test compare alors les places mémoires des deux objets.
Il faut plutôt utiliser la méthode equals, qui est hérité du type Object. Celle-ci permet de comparer les valeurs des objets. Entre 2 strings, c'est elle qu'il faut utiliser. Entre 2 Objets de ton crû comparable, il faudra la redéfinir, car elle ne compare pas grand chose à la base.
Note : il est conseillé de redéfinir aussi la méthode compareTo lorsque equals est redéfini.