文章目录介绍一、核心定义二、为什么需要 StringBuilder三、底层原理关键四、常用方法1️⃣ append最重要2️⃣ toString3️⃣ insert4️⃣ delete5️⃣ replace6️⃣ reverse五、性能对比面试重点六、StringBuilder vs StringBuffer七、典型使用场景✅ 1. 循环拼接字符串✅ 2. SSE / 流式拼接你刚刚的场景✅ 3. 构建复杂字符串SQL / JSON八、容量优化进阶例子一、最基础字符串拼接二、循环拼接最常见场景三、拼接数组很实用四、构建 JSON 字符串五、SQL 拼接后端常见六、字符串反转七、插入 删除八、你当前场景SSE 流式拼接九、链式写法推荐总结快速记忆StringBuilder是 Java 中用于高效构建和拼接字符串的核心类属于java.lang包。介绍一、核心定义StringBuilder是一个可变字符串容器mutable sequence of characters对比String 不可变immutableStringBuilder 可变mutable二、为什么需要 StringBuilder看这个例子Strings;sa;sb;sc;⚠️ 实际发生的是 → a → ab → abc 每一步都会创建新对象性能差而StringBuilderStringBuildersbnewStringBuilder();sb.append(a);sb.append(b);sb.append(c); 只是在同一个对象上追加性能高三、底层原理关键StringBuilder内部其实是char[]value;一个可扩容数组特点默认容量16不够时自动扩容通常 *2 2四、常用方法1️⃣ append最重要sb.append(hello);sb.append(123);sb.append(true); 支持各种类型会自动转字符串2️⃣ toStringStringresultsb.toString(); 转成普通字符串最终输出3️⃣ insertsb.insert(0,Hi ); 插入内容4️⃣ deletesb.delete(0,2); 删除指定范围5️⃣ replacesb.replace(0,2,Hello);6️⃣ reversesb.reverse();五、性能对比面试重点操作StringStringBuilder拼接❌ 慢频繁创建对象✅ 快修改❌ 不支持✅ 支持内存❌ 浪费✅ 高效六、StringBuilder vs StringBuffer类线程安全性能StringBuilder❌ 非线程安全✅ 更快StringBuffer✅ 线程安全synchronized❌ 较慢 结论单线程 用StringBuilder多线程 用StringBuffer或自己加锁七、典型使用场景✅ 1. 循环拼接字符串StringBuildersbnewStringBuilder();for(inti0;i1000;i){sb.append(i);}✅ 2. SSE / 流式拼接你刚刚的场景fullResponse.append(chunk); 一边接收一边拼完整结果✅ 3. 构建复杂字符串SQL / JSON八、容量优化进阶可以预设容量避免扩容StringBuildersbnewStringBuilder(1024); 高性能场景建议这样做例子下面给你几个从简单到实用的StringBuilder示例直接贴代码 说明方便你快速上手。一、最基础字符串拼接StringBuildersbnewStringBuilder();sb.append(Hello);sb.append( );sb.append(World);System.out.println(sb.toString()); 输出Hello World✔️ 用于替代Hello World二、循环拼接最常见场景StringBuildersbnewStringBuilder();for(inti1;i5;i){sb.append(i).append(,);}System.out.println(sb.toString()); 输出1,2,3,4,5, 优化去掉最后一个逗号sb.deleteCharAt(sb.length()-1);三、拼接数组很实用String[]arr{苹果,香蕉,橙子};StringBuildersbnewStringBuilder();for(Strings:arr){sb.append(s).append( | );}sb.delete(sb.length()-3,sb.length());System.out.println(sb); 输出苹果 | 香蕉 | 橙子四、构建 JSON 字符串StringBuildersbnewStringBuilder();sb.append({);sb.append(\name\:\张三\,);sb.append(\age\:18);sb.append(});System.out.println(sb.toString()); 输出{name:张三,age:18}五、SQL 拼接后端常见StringBuildersqlnewStringBuilder();sql.append(SELECT * FROM user WHERE 11 );if(true){sql.append(AND name 张三 );}if(true){sql.append(AND age 18 );}System.out.println(sql); 输出SELECT * FROM user WHERE 11 AND name 张三 AND age 18六、字符串反转StringBuildersbnewStringBuilder(hello);sb.reverse();System.out.println(sb); 输出olleh七、插入 删除StringBuildersbnewStringBuilder(HelloWorld);sb.insert(5, );sb.delete(0,1);System.out.println(sb); 输出ello World八、你当前场景SSE 流式拼接StringBuilderfullResponsenewStringBuilder();String[]chunks{你,好,,世,界};for(Stringchunk:chunks){// 模拟流式返回System.out.println(发送chunk);// 拼完整结果fullResponse.append(chunk);}System.out.println(完整结果fullResponse); 输出完整结果你好世界九、链式写法推荐StringresultnewStringBuilder().append(Java ).append(很 ).append(好用).toString();System.out.println(result);总结快速记忆你可以把StringBuilder理解为 一个“字符串拼接工具箱”专门用来高效处理字符串最常用的就 3 个append()// 拼接toString()// 转字符串delete()// 删除