我正在构建一个由多个部分组成的字符串,并且想要使用其中一个StringBuffer
或StringBuilder
这样做。从 Java 5 文档中,我认为这StringBuilder
是最好的,但需要注意的是
的实例
StringBuilder
对于多线程使用是不安全的。
从这个陈述中,我明白我不应该有一个StringBuilder
由多个线程共享的实例。但是这个案例呢:
//Is this safe?
//foo() is called simultaneously by multiple threads
String foo(String a, String b) {
return new StringBuilder(a).append(b).toString();
}
在这里,函数中可能同时有多个线程,同时使用StringBuilder
该类(例如,静态变量的并发访问,如果有的话),但每个线程都有自己单独的StringBuilder
. 从文档中,我不能完全确定这是否算作多线程使用。