String,StringBuffer,StringBuilder的区别

区别

1.可变性
String是字符串常量,由final修饰,具有不可变性,Stringbuffer,StringBuilder是字符串变量,是可变的,是一个字符可变序列。
2.线程安全
StringBuffer是线程安全的,StringBuilder是非线程安全的
3速度
StringBuilder 最快,StringBuffer次之,String最慢

适用范围

  • String:适用于少量的字符串操作的情况

  • StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

  • StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况

赋值特殊情况

String str=“abc”+“de”;
StringBuilder stringBuilder=new StringBuilder().append(“abc”).append(“de”);
System.out.println(str);
System.out.println(stringBuilder.toString());

结果相同,都为“abcde”
但操作速度却是String更快,这是因为String拼接两个字符串常量,上面代码第一行的格式,等同于String=“abcde”,直接拼接在一起,无需创建回收对象。

StringBuffer和StringBuilder的使用

在我们使用时仍需用toString方法将StringBu和StringBudder装换为String类型才可输出。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。