If you're definitely using Java 5 or higher, and you definitely don't need to share the object between threads (I can't remember ever needing to do so), StringBuilder is a better bet.
Basically you should almost always use StringBuilder when you can, to avoid pointless synchronization. Admittedly the way most VMs handle uncontended synchronization is extremely efficient, but if you don't need it in the first place...
If you're definitely using Java 5 or higher, and you definitely don't need to share the object between threads (I can't remember ever needing to do so),
StringBuilder
is a better bet.Basically you should almost always use
StringBuilder
when you can, to avoid pointless synchronization. Admittedly the way most VMs handle uncontended synchronization is extremely efficient, but if you don't need it in the first place...StringBuilder
methods are not synchronized, so when you are not concerned with multithreading part you can use it, as it would be fast.StringBuffer
on the other hand have all its method synchronized, and hence is thread safe.You can go through this post: - Difference between StringBuilder and StringBuffer