关于String,StringBuilder,StringBuffer分别应用场景
来源:5-4 线程不安全类与写法-1
![](http://img1.sycdn.imooc.com/user/57cd21b00001d0e503000300-100-100.jpg)
Echo鑫
2018-03-22
老师,听视频这么说。StringBuilder快,StringBuffer安全,那String这个类,顿时就有点尴尬了,那我们一般为什么不就用这两个类,干嘛还用String?(尽管我们知道,很多场景下,我们一般都是习惯性定义字符串为String)
这三者的应用场景有什么区别,什么情况下,我该用哪个类,尤其String类。
写回答
1回答
-
Masquerade云
2018-03-22
字符串拼接的时候,用SringBuilder和StringBuffer性能更好,因为String是不能改变的,例如我们声明了一个String s = "abc";当我们改为String s = s+"de";的时候,其实是重新声明了一个String s,就是String s="abc"+"de";而不是直接在之前的String上面操作,所以会有性能上面的问题。而StringBuilder和StringBuffer调用append方法是直接在上面进行修改操作的,性能比String好。然后其余的问题就是StringBuilder是线程不安全的,而StringBuffer是线程安全的,在不同的场景进行选择了。
022018-06-22
相似问题