在 Java 中,字符串拼接的高效方式取决于使用场景。下面是常见方式及其性能和适用场景对比。
+ 在循环中拼接String result = "";
for (int i = 0; i < 10000; i++) {
result += i;
}
❌ 低效原因
+ 都会创建新的 String 对象+String s = "name: " + name + ", age: " + age;
✅ 编译器会自动优化为 StringBuilder
StringBuilder(最常用)StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10000; i++) {
sb.append(i);
}
String result = sb.toString();
✅ 优点
⚠️ 可指定初始容量,避免扩容:
new StringBuilder(1024);
StringBufferStringBuffer sb = new StringBuffer();
sb.append("a").append("b");
✅ 线程安全
❌ 性能略低于 StringBuilder
String.joinString result = String.join(",", list);
✅ 适合 集合拼接
Stream + Collectors.joiningString result = list.stream()
.collect(Collectors.joining(", "));
✅ 函数式、可读性好
StringBuilder ≈ StringBuffer > String.join > +(循环) > 反复 +
| 场景 | 推荐方式 |
|---|---|
| 简单拼接 | + |
| 循环拼接 | StringBuilder |
| 多线程 | StringBuffer |
| 集合拼接 | String.join |
| 流式处理 | Collectors.joining |
如果你有具体代码场景(如 SQL、日志、JSON),我可以给你更精确的建议。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。