Java:String、StringBuffer和StringBuilder的区别

参考:

https://blog.csdn.net/kingzone_2008/article/details/9220691

https://blog.csdn.net/itchuxuezhe_yang/article/details/89966303

String 常量字符串,每次修改都是会新创建一个字符串,当要频繁修改字符串的时候不建议使用 String

StringBuilder 和 StringBuffer 可变的字符串

StringBuilder 效率比较高,不是线程安全的,多线程时会有问题。

StringBuffer 是线程安全的,效率比较低,适合多线程,底层所有的公共方法都使用了 synchronized 保证同步,所有效率比低。

技术选型:

大多数业务场景中,不变的字符串适合 使用 String

可变的单线程大量字符串使用 StringBuilder (小型项目,大多数场景下不太确定是否多线程时还是建议使用StringBuffer)

多线程场景下使用 StringBuffer。

相关推荐
ThinkerQAQ_几秒前
并发编程(七):volatile——从语言规则到 CPU
java·python·go
蜗牛互联网4 分钟前
Python Responses API函数调用实战:工具白名单、参数校验与预算
java·人工智能·后端
韩曙亮8 分钟前
【JavaEE】MyBatis 基本用法 ⑤ ( 单条件查询 | 多条件查询 | 多条件动态查询 | 单条件动态查询 )
java·sql·java-ee·mybatis·mapper·sql映射
开开心心就好8 分钟前
二维码批量生成导出工具,离线可用完全免费
java·前端·人工智能·智能手机·github·excel·visual studio
1024奇点8 分钟前
【仓颉语言入门 · 第24课】
开发语言·ide·开源
栈溢出了12 分钟前
VS Code Python 自动导包失效排查笔记
开发语言·笔记·python
wangbing112514 分钟前
开发指南147-WebSocket-前后关联关系
java
朝朝辞暮i19 分钟前
C++ 第 28 课:Lambda 表达式
开发语言·c++·算法
Frank_refuel25 分钟前
深入理解RpcRouter(远端调用模块)
开发语言·qt
Wx-bishekaifayuan26 分钟前
springboot陨石鉴收系统96265-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·spring·课程设计