StringBuffer与StringBuiler,功能几乎一样,但是StringBuffer是线程安全的(实现方法大多有Synchronized修饰),StringBuilder则没有--非线程安全的。线程安全就要付出性能上的代价,所以StringBuffer性能上会比StringBuilder差一些,看取舍了、
StringBuffer为什么比字符串用“+”拼接的方式快?
StringBuffer和StringBuiler都继承至AbstractStringBuffer,AbstractStringBuffer内部使用char[]数组来保持需要append()的字符串(超过数组长度的话,数组会自动扩容,一般为2倍,扩容后将原值拷贝到新的数组中)。
这样的操作方式,比String使用“+”的方式要快,因为“+”的方式是在栈中生成大量的String对象,造成了一定的系统开销。