面试精选4-StringBuffer,StringBuilder开发中如何做选择?
2022-09-22 10:17 作者:架构风清扬-趣学旅程 | 我要投稿

首先,String 跟其他两个类的区别是
String是final类型,每次声明的都是不可变的对象,
所以每次操作都会产生新的String对象,然后将指针指向新的String对象。
StringBuffer,StringBuilder都是在原有对象上进行操作
所以,如果需要经常改变字符串内容,则建议采用这两者。
StringBuffer vs StringBuilder
前者是线程安全的,后者是线程不安全的。
线程不安全的StringBuilder性能更高,所以在开发中,优先采用StringBuilder.
StringBuilder > StringBuffer > String
注意:
我们在开发中为什么会选择StringBuilder?
这个要看场景,有同学说可以为了性能放弃安全,这是不对的。
大家想想,什么情况下需要考虑线程安全的问题?
有一个前提条件就是:多线程访问同一个资源,且有更新操作
所以,只要不是这样的场景,我们就可以放心使用StringBuilder
而我们在开发中,通常使用StringBuilder在方法内来创建对象和拼接信息,而这种情况是一个线程对应一个StringBuilder对象
视频解读版: