一、查阅资料做一下记录
二、三者在执行速度方面的排名为 : stringbuilder 》 stringbuffer 》 string 。 忧伤了,都没用过stringbuilder...
三、string是字符常量,也就是不可更改的,当你做赋值或 + 以及 += 操作的时候编译器其实已经重新开辟了一个新的对象用于储存了。也就是说已经指向了其他地方。
stringbuffer 和 stringbuild 是字符串变量,当你做赋值 + 以及 += 操作的时候是在原有的基础上进行的,指向的也是原来的地址。
四、关于string 、stringbuffer 以及stringbuilder的线程安全问题
string 是线程安全的,其中一个原因就是他的不可变。
stringbuffer 也是线程安全的,而stringbuilder则是飞线程安全的。
相关文档请参考 : https://www.cnblogs.com/xingzc/p/6277581.html (声明:这里引用下他人文章)
五、综上考虑
如果只是操作少量的数据,可以是使用 string
单线程操作大量数据时,使用stringbuilder
多线程操作大量数据的时候使用stringbuffer
六、 当字符创操作被多个线程使用的时候,虽然说stringbuilder的速度比stringbuffer快,但是JVM并不能保证数据的安全性,而stringbuffer则可以确保其安全性。
也欢迎登录我的个人网站,里面有更多的文章及技术咨询在等你:http://www.guangmuhua.com