String X StringBuilder X StringBuffer
Jonas Abreu em 11/04/2012Caso bem comum que muita gente ainda discute. Devo usar String, StringBuilder ou StringBuffer?
Só para lembrar:
- String é uma String imutável (consequentemente é thread-safe)
- StringBuilder é uma String mutável
- StringBuffer é uma String mutável thread-safe
Qual devo usar quando estiver programando? String.
A maior parte do tempo não faz a menor diferença qual você usa. E é bem mais legível "a" + "b"
que new StringBuilder("a").append("b")
.
Ah, mas o StringBuffer usa synchronized
, então vai ser mais lento. Também não. Escape Analysis
resolve esse problema, removendo o controle de lock se o StringBuffer for usado por apenas uma thread.