String StringBuilder StringBuffer的区别
String
String是只读字符串,也就意味着String引用的字符串内容是不能被改变的。
例如
String str="abc";
str="cde";
其中str仅仅是一个引用对象,它指向了一个字符串对象“abc”,第二行实际是重新指向了一个新的字符串对象,而"abd"对象并没有任何改变。
StringBuffer
StringBuffer字符串对象可以直接修改
StringBuilder
StringBuilder字符串对象也可以直接修改
java5中引用的,但是StringBuilder内部的方法并没有使用synchronized修饰,所以适用于单线程的环境,理论效率比StringBuffer高
StringBuilder和StringBuffer底层都是由数组实现的。