String和StringBuffer之间有哪些常用方法?字符串和字符串缓冲区之间有什么区别?
答案 0 :(得分:2)
最大的区别是String
是不可变的,StringBuffer
是可变的。
答案 1 :(得分:1)
StringBuffer
可让您更快地加入字符串。例如,以下代码:
String s = "Initial string ";
for (int i = 0; i < 100; i++) {
s = s + i;
}
在每次迭代时都会创建一个表示整数i
的字符串,并且还会创建一个新的s
和i
字符串,并将s
引用移动到此新对象。它不会通过扩展其内容来重用相同的s
对象。
StringBuffer
可让您更有效地追加字符串。此类的新版本名为StringBuilder
,基本上StringBuffer
没有同步。
答案 2 :(得分:1)
StringBuffer
JavaDoc上的前几行给出了一个很好的答案:
线程安全,可变的字符序列。字符串缓冲区类似于
String
,但可以修改。
答案 3 :(得分:0)
当您需要将多个String文字连接在一起时,最好使用StringBuffer
对象,并且当您完成连接时,将其转换为String
使用toString()
方法的对象。
编辑:请忽略以下几行
以下在理论上实例化String池中的6个String对象。
String a = "A" + "B" + "C" + "D" + "E";
答案 4 :(得分:0)
最明显的共享方法是由String
和StringBuffer
(以及StringBuilder
)实现的接口指定的方法:Appendable
。它提供了3种附加其他值的方法。