String:
- final关键字进行修饰,不可变,每次对字符串的改造其实都是在创建新的String对象
StringBuffer:
- 在原对象上进行操作
- 线程安全(多线程,共享变量,结果不受影响),加了synchronized进行修饰
StringBuilder:
- 在原对象上进行操作
- 线程不安全
性能:StringBuilder>StringBuffer>String
场景:经常要改变字符串内容的情况使用StringBuffer,StringBuilder。优先使用StringBuilder,在多线程情况下使用共享变量时要保证结果不受影响使用StringBuffer。