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

来源:互联网 发布:设计师导航网源码 编辑:程序博客网 时间:2024/04/29 07:40

一、String:

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

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


二、StringBuffer:

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

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


三、StringBuilder:

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


四、速度

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


五、总结
(1).如果要操作少量的数据用 = String
(2).多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
(3).单线程操作字符串缓冲区 下操作大量数据 = StringBuilder

0 0
原创粉丝点击