说白了就是提高字符串连接效率。在大部分情况下,字符串的拼接速度为:StringBuilder>StringBuffer>String。
String是不可变的,因此每次对其操作改变其变量值,其实是生成一个新的对象,然后将变量引用指向新对象;因此速度慢。
StringBuffer则不同,对其操作即直接操作对象指向的引用,无需产生新对象,速度很快;它是线程安全的,在维护多线程的同步等也会消耗一点性能。
StringBuilder是jdk5之后新增的,其用法与StringBuffer完全一致,但它是线程不安全的,在单线程中最佳,因为其不需要维护线程的安全,因此是最快的。