面试题:StringBuffer和StringBuilder区别

最近经常遇到有人问StringBuffer和StringBuilder区别,这里做个总结:

StringBuffer和StringBuilder和String都代表字符串;

String是不可变类,任何对String的改变都会引发新的String对象的生成;
StringBuffer是可变类,任何对他所指代的字符串都不会产生新的对象;

StringBuffer支持并发操作,线程安全,适合多线程中使用;
StringBuilder不支持并发操作,线程不安全,不适合多线程使用;(单线程中性能不比StringBuffer高)

代码测试详情参考这里

测试总结:
不考虑线程安全问题,优先使用StringBuilde类(两者几乎无差别);
如果要保证线程安全,使用StringBuffer

Guess you like

Origin blog.csdn.net/qq_43521500/article/details/121289249