String/StringBuilder/StringBuffer区别

1、String内容是不可变的字符,String底层使用了一个不可变的字符数组(final char[])

注:final修饰一个类,这个类不可以被继承,若是修饰一个变量,这个变量被赋值后不可以改变

StringBuilder和StringBuffer底层是可变的字符数组

2、拼接字符串

1)、String进行拼接 String = "a"+"b";//在此创建了三个对象
2)、StringBuilder sb = new StringBuilder();sb.append("a").append("b");//仍然还是原来的对象
所以拼接字符串尽量不要用String进行拼接

 3.StringBuilder是线程不安全的效率高,StringBuffer是线程安全的,效率低

StringBuffer在append方法上增加了sycronize线程锁