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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top