String、StringBuffer和StringBuilder的区别

1、String

  • 定义(初始化)后就不可再修改其值(每次对String值的修改都是返回新的String);

String、StringBuffer和StringBuilder的区别

  • 线程安全

  • 性能最差
    2、StringBuffer

  • 可多次修改其值;
    String、StringBuffer和StringBuilder的区别

  • 线程安全,原因是StringBuffer的方法都是用了synchronized(同步锁)修饰;

  • 性能次之(多线程使用StringBuffer)

3、StringBuilder

  • 可多次修改其值;
    String、StringBuffer和StringBuilder的区别
  • 非线程安全
  • 性能最好(但是只能是单线程使用StringBuilder)