1、StringBuffer是线程安全的可变字符序列,可以安全的用于多个线程,而StringBuilder是非安全的可变字符序列,用于在单线程中使用,因为它的内部没有实现同步。除了这点不同外,基本用法都是相同的;
2、因为字符串缓冲区在单线程中使用比较普遍,所以还是用StringBuilder,它比StringBuffer要快。
3、一般在使用字符串连接,经常需要在字符串后面添加新的字符串的时候用到这两个对象。
比如:String s1 = "abc"+"bc"+"ad";
或者是一个循环不断往后面添加新的字符串时就可以用StringBuilder的append方法往原来的字符串后面添加内容,因为String是不可变的字符序列,用它来连接字符串的时候需要不停的创建新的对象再进行连接,使用StringBuilder或StringBuffer就会高效些。 |