StringBuffer与String主要的区别是:
1.StingBuffer在进行字符串处理时不生成新的对象,但是String的每次修改都是产生新的对象,所以在内存上StringBuffer优于String
2.StirngBuffer只能通过构造函数建立。
StringBuffer stringbuffer=new StringBuffer("ab");
注意:不能通过赋值符号赋值!!
3.String str = new String("welcome to ");
str += "China";
的处理步骤实际上是通过建立一个StringBuffer,然后调用append(),最后
再将StringBuffer toSting();
这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上要打折扣.
如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高。
相同点:
1.都是final 类型,不能被继承
public class test {
public static void main(String[] arg0){
StringBuffer stringBuffer=new StringBuffer("abc");
stringBuffer.append("de");
boolean bool=false;
stringBuffer.append(bool);
Object object=stringBuffer.charAt(2);
Object object2=stringBuffer.substring(2, 4);
System.out.println(stringBuffer);
System.out.println(object);
System.out.println(object2);
}
}
结果:abcdefalse
c
cd