【问题标题】:Which class to use for this static method, StringBuffer or StringBuilder?该静态方法使用哪个类,StringBuffer 还是 StringBuilder?
【发布时间】:2013-05-21 14:37:39
【问题描述】:

对于下面的代码,我应该在静态方法中使用哪个类,StringBuilderStringBuffer?基于 API,StringBuffer 是线程安全的,但 StringBuilder 不是。

public static String getString(int[] arrs) {
    StringBuilder sb = new StringBuilder();  //1
    StringBuffer sb = new StringBuffer();    //2
    for (int i : arrs) {
        sb.append(i);
    }
    return sb.toString();
}

【问题讨论】:

  • 这个问题已经被问过很多次了。

标签: java multithreading stringbuilder stringbuffer


【解决方案1】:

这是一个方法局部变量,你不会在那里并发访问......所以使用 StringBuilder

【讨论】:

    【解决方案2】:

    为什么要担心您展示的代码的线程安全?如果您的 StringBuilder 没有以需要担心线程安全的方式使用,那么不要不必要地花费它所需的开销。使用 StringBuilder。

    【讨论】:

      【解决方案3】:

      一般来说,如果它是一个局部变量并且没有分发给另一个线程,则不需要任何线程保护。您的 StringBuilder 完全是该方法的本地化。

      【讨论】:

        【解决方案4】:

        使用 StringBuilder 因为有局部变量方法

        【讨论】:

          猜你喜欢
          • 2012-08-19
          • 1970-01-01
          • 1970-01-01
          • 2020-07-05
          • 2012-06-17
          • 2014-05-24
          • 2011-02-01
          • 2015-11-25
          • 1970-01-01
          相关资源
          最近更新 更多