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