In un'applicazione web di produzione, i miei colleghi programmatori hanno utilizzato StringBuffer ovunque. Ora mi sto occupando dello sviluppo e delle correzioni dell'applicazione. Dopo aver letto StringBuilder e StringBuffer Ho deciso di sostituire tutto il codice StringBuffer con StringBuilder perché non abbiamo bisogno della sicurezza del thread nei nostri bean 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 data bean separato per ogni sessione / richiesta. Una sessione viene utilizzata da un singolo utente che nessun altro utente può accedervi.
Devo prendere in considerazione altri punti prima di migrare?
Se c'è un singolo thread (nessun thread in attesa / nessun nuovo thread cercherà il blocco degli oggetti), si comporta allo stesso modo sia con StringBuffer che con StringBuilder. So che nel caso di StringBuffer, ci vuole tempo per prendere il blocco dell'oggetto, ma voglio sapere se c'è qualche differenza di prestazioni tra di loro eccetto il blocco / rilascio del blocco dell'oggetto.