Non c'è alcuna differenza fra la classe String e una qualunque tua classe.
L'unico "cavillo" è che la classe String (come altre classi del framework, ad esempio Integer, Long, Locale, ecc) è immutabile: un oggetto String non può essere mai modificato. Anche tu puoi creare classi immutabili (cerca informazioni sul modificatore final).

Con il codice da te riportato, valido per qualunque tipo di oggetto, l'unico risultato che ottieni è di avere due variabili (due riferimenti) che puntano allo stesso oggetto.

Se vuoi avere due oggetti distinti, devi usare l'operatore new.


Ciao.