最近经常遇到有人问StringBuffer和StringBuilder区别,这里做个总结:
StringBuffer和StringBuilder和String都代表字符串;
String是不可变类,任何对String的改变都会引发新的String对象的生成;
StringBuffer是可变类,任何对他所指代的字符串都不会产生新的对象;
StringBuffer支持并发操作,线程安全,适合多线程中使用;
StringBuilder不支持并发操作,线程不安全,不适合多线程使用;(单线程中性能不比StringBuffer高)
代码测试详情参考这里
测试总结:
不考虑线程安全问题,优先使用StringBuilde类(两者几乎无差别);
如果要保证线程安全,使用StringBuffer