您的位置:首页 > 产品设计 > UI/UE

StringBuilder、StringBuffer和String三者的联系和区别

2017-04-19 20:23 330 查看
转自:http://blog.csdn.net/qq_27918787/article/details/52297067

一、String:

–String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间。

–String的操作都是改变赋值地址,而不是改变值。

二、StringBuffer:

–可变且线程安全,任何对它指向的字符串的操作都不会产生新的对象。

–每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量。

三、StringBuilder:

–与StringBuffer类功能基本类似,区别是非线程安全,且StringBuilder类会略微快一点。

四、速度

一般情况下,速度从快到慢:StringBuilder>StringBuffer>String,这种比较是相对的,不是绝对的。

五、总结 

(1).如果要操作少量的数据用 = String 

(2).多线程操作字符串缓冲区 下操作大量数据 = StringBuffer 

(3).单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: