Sul manuale ho letto che (nel caso di stringhe, penso + in generale di oggetti) l'operatore di uguaglianza == non serve a testare l'uguaglianza di contenuto ma solo l'uguaglianza di riferimento.
Per provare questa cosa ho creato il mio programmino
class Ciao{

public static void main(String argv[]){

String s1;
String s2;
s1="q";
s2="q";

if(s1==s2)
System.out.print ("Ciao");



}

}

che pero' mi stampa a schermo "ciao".
Eppure s1 e s2 puntano a 2 distinti oggetti stringa.
Ho sbagliato io a capire oppure cosaltro?