quando scrivi
avverti il compilatore che esisterà un oggetto di nome o di tipo Objectcodice:Object o;
quando scriverai
esisterà davvero e la memoria sarà allocatacodice:o = new Object();
La classe String è specificata come final, quindi non può essere estesa e gli oggetti String non possono essere modificati, esempio:
codice:String a = "ciao"; String b = a.substring(0, 2); // ritorna una stringa nuova senza modificare a, quindi viene allocato un oggetto nuovo String c = "java"; c = "sun"; // c viene ricostruito, non modificato![]()