String类和StringBuffer类有什么区别?
答案 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.....
字符串只是一个字符串,无法更改。