guarda in termini di prestazioni mi sono trovata a fare una cosa con java 5:
query su db, carico tutti i dati (sottoset della tabella, non tutti i campi), questi poi li stampo a video (chiedendo il toString()).
In caso di resultset consistenti, ho notato delle differenze sostanziali in termini di tempi di esecuzione e memoria occupata tra il toString con tutti quegli append e il toString fatto passando io stessa per stringBuilder.
Il tutto nasceva da un problema presso un cliente (che aveva memoria ridotta rispetto a quella del pc su cui sviluppavo io), quella query automaticamente andava in blocco e restituiva JavaHeapException.
Il punto chiave era che riuscivo ad avere il set dei dati, ma non riuscivo a terminare la stampa.
Il workaround è stato appunto concatenare tutte le stringhe con StringBuilder e non con "+" e da quella volta preferisco fare questo lavoro a monte e non a valle.

ci sono anche letture interessanti, quello l'ho provato con mano
guarda qui