String是只读字符串,所引用的字符串不能被改变

底层是通过Stringbuild来实现

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

例如:

String str1="1" 

String str2=str1+"a"; 

等价于

StringBuilder str = new StringBuilder();
str.append(1);
str.append("a");
String str2=str.toString();

 

区别

String和Stringbuilder在单线程环境下使用;

StringBuffer在多线程环境下使用,可以保证线程同步;

Stringbuilder 和StringBuffer 实现方法相同,均表示可变字符序列,不过StringBuffer 用synchronized关键字修饰(保证线程同步)

运行速度

当需要对某一字符串大量重复操作时:

Stringbuilder 最快,不需要考虑线程同步;

StringBuffer次之;

String最慢,因为每次都要重新开辟内存,产生很多匿名对象,影响系统性能

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄