温馨提示×

温馨提示×

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

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

java StringBuffer是什么

发布时间:2026-09-15 10:39:26 来源:亿速云 阅读:87 作者:小樊 栏目:编程语言

在 Java 中,StringBuffer可变的字符串类,位于 java.lang 包中,主要用于频繁修改字符串内容的场景。


一、什么是 StringBuffer

StringBuffer 是一个线程安全的可变字符序列
String 不同,String 是不可变的(每次修改都会创建新对象),而 StringBuffer 可以在原有对象上修改

StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");
System.out.println(sb); // Hello World

二、StringBuffer 的特点

1️⃣ 可变(Mutable)

  • 可以不断追加、插入、删除、替换字符
  • 不会像 String 那样频繁创建新对象

2️⃣ 线程安全(Thread-safe)

  • 方法基本都用 synchronized 修饰
  • 适合多线程环境

3️⃣ 性能略低于 StringBuilder

  • 因为线程安全需要加锁
  • 单线程下推荐使用 StringBuilder

三、常用方法

StringBuffer sb = new StringBuffer();

sb.append("Java");        // 追加
sb.insert(0, "Hello ");   // 插入
sb.replace(0, 5, "Hi");   // 替换
sb.delete(0, 2);          // 删除
sb.reverse();             // 反转
sb.length();              // 长度
sb.toString();            // 转成 String

四、String vs StringBuffer vs StringBuilder

是否可变 线程安全 性能 使用场景
String ❌ 不可变 ✅(不可变天然安全) 低(频繁修改慢) 少量字符串
StringBuffer ✅ 可变 ✅ 线程安全 多线程字符串操作
StringBuilder ✅ 可变 ❌ 非线程安全 单线程字符串操作

五、使用建议

✅ 多线程环境 → StringBuffer
✅ 单线程环境 → StringBuilder(推荐)
❌ 不要频繁用 String 做拼接(如循环里)


六、简单示例(拼接效率高)

StringBuffer sb = new StringBuffer();
for (int i = 0; i < 1000; i++) {
    sb.append(i);
}
String result = sb.toString();

如果你愿意,我也可以:

  • 帮你对比 StringBufferStringBuilder 源码
  • 给你面试题版总结
  • 结合项目场景讲什么时候用最合适
向AI问一下细节

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

AI