In the book "Effective Java", Josh Bloch says that
StringBuffer is largely obsolete and should be replaced by the non-synchronized implementation 'StringBuilder'
.
But in my experience, I've still seen widespread use of the StringBuffer class. Why is the StringBuffer class now obsolete and why should StringBuilder be preferred over StringBuffer except for the increased performance due to non-synchronization?
It's obsolete in that new code on Java 1.5 should generally use StringBuilder
- it's very rare that you really need to build strings in a thread-safe manner, so why pay the synchronization cost?
I suspect code that you see using StringBuffer
mostly falls into buckets of:
StringBuilder
StringBuilder