Ha senso rendere immutabili gli oggetti class String
con le seguenti dichiarazioni, perché condividono la stessa archiviazione nel pool comune.
String str1 = "abc";
String str2 = "abc";
Ma non sono sicuro, se ha senso avere oggetti class String
immutabili con le seguenti dichiarazioni esplicite del costruttore, perché non condividono la stessa memoria in heap.
String str3 = new String("def");
String str4 = new String("def");
Quindi, se il contenuto di un oggetto class String
deve essere modificato di frequente, si consiglia di imparare class StringBuffer
e class StringBuilder
.
Ha senso sapere, qual è la ragione per cui class String
è stato progettato per mantenere il contenuto immutabile con un costruttore esplicito?