Sobes.tech
Junior — Middle

Qual è la differenza tra l'uso del metodo equals e l'operatore == nel confrontare oggetti in Java?

sobes.tech AI

Risposta dell'AI

In Java, l'operatore == confronta i riferimenti agli oggetti, cioè verifica se due variabili puntano allo stesso oggetto in memoria. Il metodo equals() è destinato a confrontare il contenuto degli oggetti, cioè la loro uguaglianza logica.

Ad esempio, per le stringhe:

String a = new String("test");
String b = new String("test");

System.out.println(a == b);       // false, oggetti diversi
System.out.println(a.equals(b));  // true, contenuto uguale

Importante: la classe deve ridefinire il metodo equals() affinché il confronto per contenuto funzioni correttamente. Se equals() non è ridefinito, si comporta di default come == (confronta i riferimenti).