StringBuffer
"可变"和"不可变",和是不是final没有关系
举个例子:
String str1 = "hello";
String str2 = "world";
String str1 = str1 + str2;//这里所做的内部操作,其实不是把str1的内容改变为原str1+str2的内容这么简单, 而把创建一个新的String, 内容为str1 + str2的内容,然后再把str1这个引用重新指向新创建的String, 这就是上面说的String不可变.
而如果是StringBuffer的话,则直接更改str1的内容,而不是先创建一个新的StringBuffer
使用 StringBuffer 主要就是在性能上的考虑。
String 是一种非常常用的数据类型,但由于 String 是不可变对象,在进行 String 的相关操作的时候会产生许多临时的 String 对象。
而 StringBuffer 在操作上是在一个缓冲中进行的,性能当然优越得多。
不过,一般做为简单的字符串传递和其它操作,只不要改变字符串内容的操作,用 String 效率会高一些。
air_tuyh
2007-04-28 13:29:33
评论:0
阅读:40
引用:0