Java-StringBuilder与字符串串联

时间:2018-10-04 14:05:14

标签: java stringbuilder string-concatenation

问题很简单,如何避免使用不适当的内存呢?例如,假设我们有一个String s = "Test",我们想向其中添加1,使其变成Test1。我们都知道s会获得一个内存位置,如果我们使用StringBuilderTest1将获得一个新的内存地址,否则它将保留在s的位置,并且如果我们使用concat怎么办?

1 个答案:

答案 0 :(得分:3)

优化了一行连接,并在后台将其转换为StringBuilder。明智的记忆是同一回事,但是手动串联更为简洁。

// the two declarations are basically the same
// JVM will optimize this to StringBuilder
String test = "test";
test += "test";

StringBuilder test = new StringBuilder();
test.append("test");

另一方面,如果您不进行平凡的连接,那么使用StringBuilder会更好。

// this is worse, JVM won't be able to optimize
String test = "";
for(int i = 0; i < 100; i ++) {
    test += "test"; 
} 

// this is better
StringBuilder builder = new StringBuilder();
for(int i = 0; i < 100; i ++) {
    builder.append("test"); 
}