String、StringBuffer、StringBuilder

String、StringBuffer、StringBuilder

可变性:

  • String类使用 final 关键字修饰的字符数组保存字符串,所以String对象是不可变的
  • StringBuffer和StringBuilder都继承自AbstractStringBuilder类,在AbstractStringBuilder类中保存字符串的字符数组没有用 final 修饰,所以这两种对象是可变的

线程安全:

  • String的对象是不可变的,线程安全
  • StringBuffer对方法加了同步锁,线程安全
  • StringBuilder并没有对方法加同步锁,线程不安全

性能:

  • String不可变,只会生成新的String对象,性能最差
  • StringBuilder对比StringBuffer性能方面要高一些,但是StringBuilder是线程不安全的

相关推荐