关于String,StringBuilder,StringBuffer分别应用场景

来源:5-4 线程不安全类与写法-1

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是线程安全的,在不同的场景进行选择了。

0
2
布林布林
我想问一下,例如我们声明了一个String s = "abc";当我们改为String s = s+"de";的时候,其实是重新声明了一个String s,就是String s="abc"+"de"; 当我不知道这个问题的结果时,我应该怎么去跟踪这个过程呢
2018-06-22
共2条回复

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程