1. 对字符串进行修改的时候,使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,不产生新的未使用对象。
2. StringBuffer是线程安全的,StringBuilder是线程不安全的。因为StringBuffer所有公开方法都是使用Synchronized修饰的,StringBuilder没有。
3. StringBuffer每次获取toString()都会直接使用缓冲区的toStringCache构造,StringBuilder则是每次都复制一次字符数组,在构造一个字符串。
4. 因为StringBuffer是线程安全的,他所有公开方法都是同步的,而StringBuilder不是,所以StringBuilder的性能大于StringBuffer
5. StringBuilder适用于单线程场景,StringBuffer适用于多线程场景。