Quando dovrei usare StringBuilder o StringBuffer?
https://softwareengineering.stackexchange.com/questions/162340
-
04-11-2019 - |
Domanda
In un'applicazione Web di produzione, i miei colleghi programmatori hanno utilizzato StringBuffer ovunque. Ora mi prendo cura dello sviluppo e delle correzioni delle applicazioni. Dopo aver letto StringBuilder e StringBuffer Ho deciso di sostituire tutto il codice StringBuffer con StringBuilder perché non abbiamo bisogno di sicurezza dei thread nei nostri fagioli di dati.
Ad esempio: (in ogni bean di dati posso vedere l'uso di StringBuffer)
@Override
public String toString() {
StringBuffer sb = new StringBuffer();// replace it from StringBuilder
sb.append(" ABCD : ").append(abcd);
sb.append(", EFGH : ").append(efgh);
sb.append(", IJKL : ").append(ijkl);
}
Creiamo un fagioli di dati separati per ogni sessione/richiesta. Una sessione viene utilizzata da un singolo utente nessun altro utente può accedervi.
Dovrei considerare altri punti prima di migrare?
Se è presente un singolo thread (nessun thread in attesa/nessun nuovo thread cercherà un blocco oggetto), si esegue ugualmente con StringBuffer o StringBuilder. Lo so nel caso di StringBuffer, ci vuole tempo per prendere il blocco degli oggetti, ma voglio sapere se c'è qualche differenza di prestazione tra loro tranne la sospensione/rilascio del blocco oggetto.
Nessuna soluzione corretta