String类和StringBuffer类之间的区别

时间:2013-07-27 01:37:55

标签: java string stringbuffer

String类和StringBuffer类有什么区别?

2 个答案:

答案 0 :(得分:2)

字符串是不可变的。他们的内部状态无法改变。 StringBuffer允许您慢慢添加到对象,而不会在每次连接时创建新的String。

使用StringBUilder而不是旧的StringBuffer的好习惯。


使用StringBuilder或StringBuffer的常见位置是复杂对象的toString方法。假设您希望toString方法列出内部数组中的元素。

天真的方法:

String list = ""; 
for (String element : array) {
    if (list.length > 0) 
        list += ", ";
    list += element;
}

return list;

此方法可行,但每次使用+ =时,都会创建一个新的String对象。那是不可取的。处理此问题的更好方法是使用StringBuilder或StringBuffer。

StringBuffer list = new StringBuffer(); 
for (String element : array) {
    if (list.length() > 0) 
        list.append(", ");
    list.append(element);
}

return list.toString();

这样,您只需创建一个StringBuffer,但可以产生相同的结果。

答案 1 :(得分:0)

“字符串:http://docs.oracle.com/javase/tutorial/i18n/text/characterClass.html

字符串缓冲区:http://docs.oracle.com/javase/6/docs/api/java/lang/StringBuffer.html

完成工作。谷歌是你的朋友

当你说字符串bufefer时,你可能会调查一下stringbuilder。

你可以追加他们制作'新'字符串。

StringBuilder sb = new StringBuilder
sb.append("stuff here").append("more stuff here").append.....

字符串只是一个字符串,无法更改。