Java的StringBuilder和StringBuffer的区别是什么?它们的使用分别有什么用?

Java的StringBuilder和StringBuffer的区别是什么?它们的使用分别有什么用?

http://www.cnblogs.com/Fskjb/archive/2010/04/19/1715176.html

StringBuffer 和 StringBuilder 都是两种字符串处理类、StringBuffer是线程安全的、StringBuilder不是线程安全的、从开发的角度来讲、一般都用StringBuffer 、比如说 StringBuffer sb=new StringBuffer(); sb.append(select * from ); sb.append(tableName); system.out.print(sb.toString()); 输入来就是 select * from tableName 、一般在程序做Dao层的时候、需要拼sql语句等、都用StringBuffer 、不仅仅因为有append();等好用的方法、还有线程安全的原因、

StringBuilder线程不安全,打错了

StringBuffer是JavaSE5之前的默认自动构造器,线程安全,但是内存开销比较大;
StringBuilder是JavaSE5引进的默认的自动构造器,线程安全,但是内存开销比较小;
可以根据实际使用的场景选择,一般在不需要作为线程交换变量的情况下,会默认选择StringBuilder减少内存开销