温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java String 如何拼接性能高

发布时间:2026-10-26 12:24:02 来源:亿速云 阅读:89 作者:小樊 栏目:编程语言

在 Java 中,String 拼接的性能取决于使用场景和拼接方式。下面按「性能从高到低 + 适用场景」给你一个清晰总结。


一、性能最好的方式(✅ 推荐)

1️⃣ StringBuilder(单线程)

最常用、性能最好

StringBuilder sb = new StringBuilder();
sb.append("a");
sb.append("b");
sb.append("c");
String result = sb.toString();

✅ 优点:

  • 不会创建大量临时 String
  • 时间复杂度 O(n)
  • JDK 优化非常好

✅ 适用:

  • 循环里拼接
  • 拼接次数多

2️⃣ StringBuffer(多线程)

StringBuffer sb = new StringBuffer();
sb.append("a").append("b");

✅ 线程安全(方法加 synchronized) ❌ 比 StringBuilder 稍慢

✅ 适用:

  • 多线程共享拼接

二、编译期就能确定的拼接(⚡ 最快)

3️⃣ 直接用 +(常量拼接)

String s = "a" + "b" + "c";

✅ 编译器直接优化成:

String s = "abc";

⚠️ 仅限编译期常量


三、少量拼接(✅ 可读性好)

4️⃣ 使用 +(变量少)

String name = "Tom";
String s = "Hello " + name;

✅ Java 编译器会优化为 StringBuilder ❌ 不适合循环


四、不推荐(❌ 性能差)

5️⃣ 循环中用 +

String s = "";
for (int i = 0; i < 10000; i++) {
    s += i; // ❌ 每次都 new StringBuilder + String
}

❌ 会生成大量中间对象 ❌ 时间复杂度 O(n²)


五、Java 8+ 新方式(✅ 函数式)

6️⃣ StringJoiner

StringJoiner sj = new StringJoiner(",");
sj.add("a").add("b").add("c");
String result = sj.toString();

✅ 适合:

  • 用分隔符拼接
  • 集合转字符串

7️⃣ String.join

String result = String.join(",", list);

六、性能对比(大致)

方式 性能 场景
编译期 + ⭐⭐⭐⭐⭐ 常量
StringBuilder ⭐⭐⭐⭐⭐ 循环/大量
StringBuffer ⭐⭐⭐⭐ 多线程
少量 + ⭐⭐⭐⭐ 简单拼接
循环 + ❌ 禁止

✅ 最佳实践总结

  • ✅ 循环拼接 → StringBuilder
  • ✅ 多线程 → StringBuffer
  • ✅ 少量变量 → +
  • ❌ 循环不要 +
  • ✅ 有分隔符 → StringJoiner / String.join

如果你愿意,我可以:

  • 给你 性能测试代码
  • 讲 JVM 层面为什么 StringBuilder 快
  • 针对 你当前代码优化
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手