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比较