我应该使用StringBuilder吗?

时间:2015-03-27 05:30:32

标签: java string concatenation stringbuilder

我的应用程序中的代码位于很多位置。我正在使用它来准备SQL查询。

方法1:

private String sampleMethod(String name) {
    //null check
    StringBuilder sb = new StringBuilder("Welcome ");
    sb.append(name);
    sb.append(", Have a good day!");
    //System.out.println(sb.toString());
    return sb.toString();
}

方法2:

private String sampleMethod(String name) {
    //null check
    //System.out.println("Welcome " + name + ", Have a good day!");
    return "Welcome " + name + ", Have a good day!";
}
  1. 我应该使用哪种方法?
  2. 两者的内存使用量是否相同?
  3. 谢谢。

3 个答案:

答案 0 :(得分:1)

内部两种方法几乎相同。使用任何使代码更易于阅读和维护的内容。只有在遇到问题时才会担心内存消耗和性能问题。这比你想象的要少得多。

答案 1 :(得分:1)

在Java编译器的现代版本中,成语:

String x = a + b + c;

在内部转化为:

String x = new StringBuilder().append(a).append(b).append(c).toString();

所以,除非你正在使用一个非常古老的编译器,否则它们几乎都是一样的。

这并不意味着StringBuilder不再有用,它仍可用于forwhile循环。

答案 2 :(得分:0)

Stringbuilder不会重新创建对象,在这种情况下,内存使用会更好。但是String会重新创建对象。除此之外,两者的功能都相同。