news 2026/4/16 12:41:28

String、StringBuilder和StringBuffer

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
String、StringBuilder和StringBuffer

1.String(字符串常量)

  • 不可变性:String对象一旦创建,其内容不可修改。每次对字符串的操作(如拼接、替换)都会生成新的String对象,原对象不变。
String s = "Hello"; s = s + " World"; // 生成新对象,原"Hello"对象被丢弃(可能被GC回收)
  • 内存效率:频繁修改字符串会导致大量临时对象产生,增加内存开销和垃圾回收压力。
  • 线程安全:所有方法都是线程安全的(因为不可变)。
  • 适用场景:字符串内容不经常变化,或需要共享安全字符串的场景(如配置常量)。

2.StringBuilder(字符串可变,非线程安全)

  • 可变性:通过内部字符数组(char[])存储内容,支持原地修改(如append、insert、delete),不会频繁创建新对象。
  • 线程安全非线程安全(方法无synchronized修饰),单线程场景下性能更高。
  • 性能:在单线程中频繁修改字符串时,性能远优于String和StringBuffer。
  • 初始化:默认容量为16,超出容量时自动扩容(通常翻倍,避免频繁扩容)。
  • 适用场景:单线程环境下需要频繁修改字符串的场景(如循环内拼接字符串)。

3.StringBuffer(字符串可变,线程安全)

  • 可变性:与StringBuilder类似,支持原地修改。
  • 线程安全线程安全(方法用synchronized修饰),多线程环境下可安全使用,但同步操作会带来性能开销。
  • 性能:在多线程中修改字符串时,性能优于String;但在单线程中比StringBuilder慢。
  • 初始化:默认容量为16,扩容逻辑与StringBuilder一致。
  • 适用场景:多线程环境下需要频繁修改字符串的场景(如线程安全的日志拼接)。

对比总结

特性StringStringBuilderStringBuffer
可变性不可变可变可变
线程安全安全(不可变)非安全安全(synchronized)
性能(单线程)低(频繁创建对象)最高中(同步开销)
性能(多线程)不安全(需外部同步)最高(内置同步)
初始化容量无(内容决定)默认16默认16
扩容机制无(不可变)超出容量时自动扩容(翻倍)超出容量时自动扩容(翻倍)
  • String:用于只读场景,或字符串内容不频繁修改的情况。
  • StringBuilder单线程中需要频繁修改字符串时(如循环拼接),优先使用。
  • StringBuffer多线程中需要安全修改字符串时(如共享变量拼接),但需注意同步带来的性能损耗。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 15:02:48

CogVideoX1.5开源:10秒AI视频创作全攻略

CogVideoX1.5开源:10秒AI视频创作全攻略 【免费下载链接】CogVideoX1.5-5B-SAT 项目地址: https://ai.gitcode.com/zai-org/CogVideoX1.5-5B-SAT 导语:清华大学知识工程实验室(KEG)与智谱AI联合团队发布CogVideoX1.5开源模…

作者头像 李华
网站建设 2026/4/10 11:26:46

Pony V7:AuraFlow架构驱动的多物种角色生成新体验

Pony V7:AuraFlow架构驱动的多物种角色生成新体验 【免费下载链接】pony-v7-base 项目地址: https://ai.gitcode.com/hf_mirrors/purplesmartai/pony-v7-base 导语:PurpleSmartAI推出基于AuraFlow架构的Pony V7模型,以多物种角色生成…

作者头像 李华
网站建设 2026/4/16 11:59:32

如何降低fft npainting lama误修复?精确标注最佳实践

如何降低fft npainting lama误修复?精确标注最佳实践 1. 背景与问题定义 在图像修复任务中,基于深度学习的重绘模型(如 fft npainting lama)已被广泛应用于移除图片中的不需要物体、水印、文字或瑕疵。该系统通过用户手动标注需…

作者头像 李华
网站建设 2026/4/16 11:58:16

Windows 11系统性能加速全攻略:15个实用技巧让你的电脑飞起来

Windows 11系统性能加速全攻略:15个实用技巧让你的电脑飞起来 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本,用于从Windows中移除预装的无用软件,禁用遥测,从Windows搜索中移除Bing,以及执行各种其他更改以…

作者头像 李华
网站建设 2026/4/11 11:12:59

Gmail批量生成器:三步实现自动化邮箱创建的完整指南

Gmail批量生成器:三步实现自动化邮箱创建的完整指南 【免费下载链接】gmail-generator ✉️ Python script that generates a new Gmail account with random credentials 项目地址: https://gitcode.com/gh_mirrors/gm/gmail-generator 在当今数字化工作环境…

作者头像 李华