Я создаю String из нескольких частей и хочу использовать 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. Из документации я не могу решить, относится ли это к использованию несколькими потоками или нет.
Любая помощь, чтобы разъяснить это, будет оценена.