String StringBuffer StringBuilder

来源:互联网 发布:5类系统推荐算法 编辑:程序博客网 时间:2024/04/29 20:23

部分整理来自我的163博客。

同时以前没有注意到StringBuffer和StringBuilder的区别。这里一并总结了

 

从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。

 

StringBuffer是线程安全的,线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。

StringBuffer 上的主要操作是 appendinsert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。

 

StringBuffer在String的合并操作上的速度要远远的快于String。所以如果要频繁的做字符串类型合并的工作,建议首先使用StringBuffer 或者StringBuilder,如果是单线程的话,使用StringBuilder,StringBuilder不考虑同步,所以速度更快。

 

简单的测试如下

String plus operation 1156
BufferdString plus operation 0