String、StringBuilder、StringBuffer
来源:互联网 发布:网络收音机mac版 编辑:程序博客网 时间:2024/05/24 01:20
String是一个不可变的字符串,这样的拼接语句实际上创建了多个字符串对象。
String str="abc";//创建一个字符对象str=str+"def";//对象不可变,重新将拼接后的值创建新的对象
每次的拼接会创建一个新的字符串对象,对象的创建开销是很大的。
public class StringConcat{ public static void main(String[] args) { StringBuilder builder=new StringBuilder("abc"); builder.append("def"); System.out.println("builder拼接结果"+builder.toString()); //拼接效果等价于 String str1="abc"; str1=str1+"def"; System.out.println("builder拼接结果"+str1); }}
反过来看下StringBuilder,是可变的字符串,不管拼接多少次都是只创建一个对象。系统的开销就很小了。
StringBuilder和StringBuffer的不同:
StringBuilder和StringBuffer在使用的时候没有任何区别,它们的方法、构造函数签名都是一样的。
那为何还要提供两个功能相同的API来作为字符串的操作呢?当然是有内部区别的。
在多线程的情况下使用StringBuffer保证数据的同步。在单线程情况下两个都可以用,StringBuilder会快一些。
除了追加字符串使用append()方法外StringBuilder 和StringBuffer的其他操作:
indexOf(String str)查找子字符串,
insert()在指定位置添加字符串,
delete(int start, int end)删除子串,
replace()使用给定String中的字符替换此序列的子字符串中的字符,
reverse()将此字符序列用其反转形式取代,
substring()截取子串等等。
阅读全文
0 0
- String 、StringBuffer 和 StringBuilder
- String,StringBuffer,StringBuilder(转载)
- String、StringBuffer和StringBuilder
- String,StringBuffer,StringBuilder
- String、StringBuffer和StringBuilder
- String、StringBuffer和StringBuilder
- String StringBuffer StringBuilder
- String StringBuffer StringBuilder
- String StringBuffer StringBuilder
- String StringBuffer StringBuilder
- String ,StringBuffer ,StringBuilder问题
- String StringBuffer StringBuilder
- String StringBuffer StringBuilder 区别
- StringBuilder StringBuffer String
- StringBuilder。StringBuffer。String
- String,StringBuffer与StringBuilder
- String、StringBuffer和StringBuilder
- String, StringBuffer, StringBuilder区别
- sizeof和strlen区别以及使用情况分析
- 关于寻路算法的一些思考(7):地图表示
- Nginx+lua+mysql实时存日志
- 离散内积与最小二乘
- 基于QT开发的截图工具
- String、StringBuilder、StringBuffer
- 关于寻路算法的一些思考(8):长期和短期目标
- Java8 Stream的终止操作使用示例
- js之数组
- 提升数据的查询效率----索引
- Youtube视频推荐算法:从10页论文到4页论文的变迁
- 面试记录(美团)
- 404, "NOT_FOUND
- Hadoop-No.12之数据采集的时效性