Servlet的doFilter方法中的StringBuffer或StringBuilder?

这个问题在这里已经有了答案:

  • StringBuilder和StringBuffer之间的区别31个答案

  • 局部变量是线程安全的,在doFilter()方法中声明的变量将是线程安全的。 为了您的目的使用StringBuilder ,因为您不应该不必要地招致在StringBuffer使用的同步开销。

    而且,Servlet请求和响应对象是为每个新请求和响应重新创建的,因此它们本质上是线程安全的。 doFilter()方法将在每个请求的独立线程中执行。

    推荐阅读:

  • 为什么本地变量在Java中是安全的。
  • Java中的StringBuilder和StringBuffer
  • servlet-filters标记wiki

  • 由于它将是一个局部变量并且不被线程共享,所以可以使用StringBuilder。


    StringBuilder是一个更好的选择,因为它的非同步性更快。 每个请求的ServletFilter doFilter运行在它自己的线程中,因此您不需要同步的数据结构。 如果它只是一个本地varibale,那么StringBuilder是您的选择。

    链接地址: http://www.djcxy.com/p/72337.html

    上一篇: StringBuffer or StringBuilder in Servlet's doFilter method?

    下一篇: Stringbuffer,Stringbuilder when to use?