1、数据可变与不可变
String底层使用一个不可变的字符数组 private final char value[];所以内容不可变。
StringBuffer和StringBuilder都继承了AbstractStringBuilder底层使用的是可变字符数组:char[] value;
2.线程安全
StringBuilder是线程不安全的,效率高;
StringBuffer是线程安全的,效率低
所以
操作可变字符串的速度:
StringBuilder > StringBuffer > String