我正在使用Java 1.6编写一个Web应用程序并在Tomcat中运行。虽然我没有使用任何显式线程,但我想知道Spring和Tomcat背后的情况。如果我使用StringBuilder而不是StringBuffer,会遇到任何问题吗?
我正在使用Java 1.6编写一个Web应用程序并在Tomcat中运行。虽然我没有使用任何显式线程,但我想知道Spring和Tomcat背后的情况。如果我使用StringBuilder而不是StringBuffer,会遇到任何问题吗?
如果您使用本地变量,可以安全地使用StringBuilder
。每个线程将获得自己的实例。
String
而不是StringBuilder
或StringBuffer
。请注意,这里并没有改变原文的意思。 - ruakhStringBuilder
的代码块中同步,否则您将遇到竞态条件。因此,您需要注意同步或使用 StringBuffer
。StringBuilder
是一个局部变量,则无需担心。如果代码在Servlet(doGet/doPost)中,则多个请求将导致Servlet实例成为多线程。如果代码在Spring bean中,则取决于您是否将bean配置为单例或原型。