一、相同点
1、都是对字符串的操作
二、不同点
1、对字符串的操作速度不同 理论上StringBuilder>StringBuffer>String
对于少量使用字符串的操作,建议使用String
对于大量使用字符串的操作,建议使用StringBuffer或StringBuilder
2、常量和变量的区别 String是字符串常量,StringBuffer和StringBuilder是字符串变量
String保存在字符串常量区,例:
String a="abc";
a=a+"d";
其实是生成了两个对象,一个是a="abc",一个是a="abcd";
StringBuffer和StringBuilder不同,他们都是属于字符串变量,所有的操作都是在同一个对象中操作的.
3、线程是否安全的区别
String和StringBuilder不是线程安全的,StringBuffer是线程安全的