String 指向的是一个不可改变的字符串
String str1 = "aaa";
str1 = "aaa"+"bbb";
此时str1指向的是内存中的一个新的地址:"aaabbb",原来的"aaa"字符串仍然存在
而StringBuffer 指向的是一个可变的字符串
StringBuffer buffer = "aaa";
buffer += "bbb";
此时"aaa"被修改为"aaabbb"
String和StringBuffer的效率在数据量大的时候就会看出区别了
构造一个for循环,循环10000次,改变String和StringBuffer的值,就会看出效率上的区别了
而StringBuilder和StringBuffer的作用一样,唯一的区别是
StringBuffer 是线程安全(同步)的
StringBuilder不是线程安全的
当不涉及到线程安全时,最好使用StringBuilder