2017.11.15 String、StringBuffer、StringBuilder的比较(todo)
2024-10-19 16:24:10
参考来自:http://blog.csdn.net/jeffleo/article/details/52194433
1.速度
一般来说,三者的速度是:StringBuilder > StringBuffer > String。
但是,在String a = "how" + "old" + "are" + "you"。这种直接拼接的情况下,String速度最高。这是因为jvm的优化问题,jvm会自动识别,把"how" + "old" + "are" + "you"直接当做'how old are you"。
2.String
参看前篇博文:2017.11.15 String详解
3.StringBuilder和StringBuffer
这两者的api实际差不多,StringBuilder是jdk1.5引入的,1.5之前只能使用StringBuffer。翻阅了两者的源码,看出StringBuffer是线程安全的,StringBuilder是非线程安全的。因此多线程使用StringBuilder是会出错的。
4.三者的使用场景
String的使用场景:在字符串不常变化的情况下,例如进行字符串的复制和简单得拼接。
StringBuffer的使用场景:在字符串经常进行运算的,且在多线程的情况下,例如xml解析和StringBuffer参数的拼接。
StringBuilder的使用场景:在字符串经常进行运算的,且在单线程的情况下,例如SQL语句的拼装。
最新文章
- 【JAVA】通过HttpClient发送HTTP请求的方法
- 微软TechEd2013大会将在北京、上海召开!
- thymeleaf中的Literals
- JAVA的设计模式之单例设计模式
- C#中如何操作2个list
- 求新的集合 A=AUB(顺序表)
- 意大利奢侈品牌-Kiton 华丽进驻北京新光天地-时尚生活-泛高尔夫网
- C语言 - 结构体(struct)比特字段(:) 详细解释
- Go语言环境安装&;搭建(Linux)
- leetcode题解 3. Longest Substring Without Repeating Characters
- Delphi使用逍遥安卓模拟器
- 【转】URL编码(encodeURIComponent和decodeURIComponent)
- 017_mac格式化硬盘,mac如何格式化硬盘
- vue-particles粒子动画效果
- SpringBoot中关于@Enable***的注解详解
- ALGO-6_蓝桥杯_算法训练_安慰奶牛
- 抱SQL SERVER大腿之我爱用视图(对大数据量的管理)
- Debian 版本历史
- [k8s]如何处理dockerfile无expose情况下在k8s里暴漏访问
- Struts2中的包的作用描述
热门文章
- [ Openstack ] OpenStack-Mitaka 高可用之 镜像服务(glance)
- python模拟鼠标和键盘操作
- HBuilder开发移动App——manifest.json文件解析
- laravel将数据库对象转为数组的方法
- 【转.解析清晰】你真明白 Python 装饰器么?
- HDU 2988.Dark roads-最小生成树(Kruskal)
- hdu6231
- POJ1330 Nearest Common Ancestors(最近公共祖先)(tarjin)
- ASP.NET Core 2.2 基础知识(六) 配置(内含MySql+EF)
- c++ primer敲代码第二章