StringStringBuffer和StringBuilder区别及性能分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了StringStringBuffer和StringBuilder区别及性能分析相关的知识,希望对你有一定的参考价值。

1、性能比较:StringBuilder >  StringBuffer  >  String

2、String <(StringBuffer,StringBuilder)的原因

String:字符串常量

StringBuffer:字符串变量

StringBuilder:字符串变量

3、源码分析

String:查看源码得知,String类的声明是:public final,所以很清楚的知道,final的值是改变不了的,所以如果我们用String来操作字符串的时候,一旦字符串的值改变,就会在内存中创建一个新的空间来保存新的字符串,因此效率低。所以,一般涉及到字符串操作的,我们一般使用StringBuffer或者StringBuilder。

StringBuffer和StringBuilder都集成了AbstractStringBuilder,而StringBuffer大部分方法都是synchronized,也就是线程安全的,而StringBuilder就没有,所以,我们查看API可以知道,StringBuilder可以操作StringBuffer,但是StringBuffer不可以操作StringBuilder,这也是线程的原因。所以,可想而知,StringBuffer的效率肯定没有StringBuilder,因为StringBuffer要维持同步锁,这肯定要消耗部分资源。

以上是关于StringStringBuffer和StringBuilder区别及性能分析的主要内容,如果未能解决你的问题,请参考以下文章

StringStringBuffer和StringBuild

StringStringBuffer和StringBuild

StringStringBuffer和StringBuild

StringStringBuffer和StringBuilder比较

StringStringBuffer和StringBuilder区别及性能分析

stringstringbuffer和stringbuilder的区别