1、关于应用场景
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
2、运行速度
StringBuild>StringBuffer>String
3、线程安全
StringBuild是线程不安全的;StringBuffer是线程安全的
4、可变和不可变
String类中使用字符串数组保存字符串,是不可变的。
StringBuffer和StringBuilder是可变的。
5、具体使用
public class Solution {
public static void main(String[] args) {
String a="猫";
String b="很乖";
//String b=new String("猫很乖");另外一种实例化方式
System.out.println("String: "+a+b);
StringBuffer sBuffer=new StringBuffer();
sBuffer.append("你好,");
sBuffer.append("周末");
System.out.println("StringBuffer: "+sBuffer);
StringBuilder sBuilder=new StringBuilder();
sBuilder.append("明天");
sBuilder.append("会更好");
System.out.println("StringBuilder: "+sBuilder);
}
String: 猫很乖
StringBuffer: 你好,周末
StringBuilder: 明天会更好
通过上面的代码,可以看出String类是不可变类。不支持修改和添加,只能通过“+”将字符串拼接在一起。但是对于StringBuffer和Stringbuilder类,可以频繁修改,其中append和insert是常用的方法。