Ant*_*sso -1 java stringbuilder string-concatenation
问题很简单,怎样才能更好地避免非占用内存的使用呢?例如,假设我们有 aString s = "Test"并且我们想添加1它,使其变为Test1。我们都知道s获取一个内存位置,如果我们使用StringBuilder,Test1将会得到一个新的内存地址,否则它将保留在s原来的位置,如果我们使用呢concat?
小智 5
一行串联被优化并转换为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");
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您不进行简单的串联,那么使用 会更好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");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7050 次 |
| 最近记录: |