1. String是final修饰的,不可变,每次操作都会产生新的String对象
  2. StringBuffer和StringBuilder都是在原对象上操作
  3. StringBuffer是线程安全的,StringBuilder线程不安全的
  4. StringBuffer方法都是synchronized修饰的
  • 性能:StringBuilder > StringBuffer > String
  • 场景:经常需要改变字符串内容时使用后面两个
  • 优先使用StringBuilder,多线程使用共享变量时使用StringBuffer