运行速度快慢为:StringBuilder > StringBuffer > String
String最慢的原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。
在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
String中的一些操作方法同样适用于 StringBuffer 、StringBuilder。
String 、StringBuffer 、StringBuilder 之间的相互转换
1、String转换成 StringBuffer 、StringBuilder需要借助new进行转换
2、StringBuffer 、StringBuilder转换成 String 需要借助 toString 进行转换
import java.math.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
String A = "abcd";
StringBuffer B = new StringBuffer(A); //String 转换成StringBuffer
StringBuilder C = new StringBuilder(A); //String 转换成StringBuilder
StringBuffer D = new StringBuffer(C); //StringBuilder 转换成StringBuffer
String E = B.toString(); //StringBuffer 转换成String。 StringBuilder同样
System.out.println(A);
System.out.println(B);
System.out.println(C);
System.out.println(D);
System.out.println(E);
/*运行结果:
abcd
abcd
abcd
abcd
abcd
*/
}
}