ok ma mentre rispondevo avevo visto che era stato già spiegato nel commento prima del mioOriginariamente inviato da valia
va bene anche spiegare perché (visto che è una persona che si avvicina ora a java).
In java gli oggetti vanno tutti confrontanti per equals: == (come inizialmente avevi fatto) confronta i riferimenti, quindi se i riferimenti sono uguali (stesso oggetto) torna true, altrimenti false.
In alcuni casi il compilatore è furbo e "risparmia" una variabile se assegni valore uguali, in altri casi non è detto, quindi in generale è meglio fare riferimento ad equals.
Nota che per i confronti di equals va fatto l'override (non l'overload), altrimenti di default si segue il confronto dei riferimenti.
All'inizio sembra assurdo, poi quando ne capisci le potenzialità lo apprezzi

Rispondi quotando