码迷,mamicode.com
首页 > 其他好文 > 详细

String、StringBuffer和StringBuilder区别及性能分析

时间:2017-01-12 14:20:48      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:变量   同步   stringbu   字符串操作   常量   cts   span   分析   strong   

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要维持同步锁,这肯定要消耗部分资源。

String、StringBuffer和StringBuilder区别及性能分析

标签:变量   同步   stringbu   字符串操作   常量   cts   span   分析   strong   

原文地址:http://www.cnblogs.com/flying1025/p/6278031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!