①从值是否可变的角度讲。
String一旦定义后其值就不能改变,而StringBuffer相当于一个装字符串的可变容器,可以对装的内容进行增删改查等操作
②从效率的角度讲
StringBuffer的append方法比“+”高效。
字符串连接操作中StringBuffer的效率要比String高:
每次使用String的 "+",都是new了一个新的String 对象,
而StringBuffer 的append()方法,都是在原有的对象上进行的操作,
String str = new String("welcome to ");
str += "here";
的处理步骤实际上是通过建立一个StringBuffer,让侯调用append(),最后
再将StringBuffer toSting();
这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上要打折扣.
并且由于String 对象是不可变对象,每次操作Sting 都会重新建立新的对象来保存新的值.
这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.
因此,当需要对字符串进行多次修改时,最好用StringBuffer。
|