String 是字符串常量,每次操作都会生产新的对象,适用于少量字符串操作的情况;StringBuffer、StringBuilder 是字符串变量,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。
StringBuffer 线程安全,StringBuilder 线程不安全,底层实现上的话,StringBuffer 其实就是比 StringBuilder 多了 Synchronized 修饰符。