STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,而且用它来作为应用是安全的
如果最后需要String,那么使用StringBuffer的toString()方法。如果你问的是从回收的角度上来讲的话,显然StringBuffer对内存的消耗要小的多,如果你用到了类似于我在上面那篇文章中举的例子:
String s="Hello Baidu";
s=new String("Hello Baidu");
s=s.concat("!");
在内存中会有两个空间是没有指向的,也不会被回收,因为它们都还不是Null.只有等到代码结束的时候才会被回收.
在我们小的程序中这样的开销还可以忽略,但是大型的工程中,大量的开销会对代码运行的速度带来很大的影响.
|