首页 > 其他 > 详细

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

时间:2017-01-12 14:18:34      阅读:298      评论:0      收藏:0      [点我收藏+]

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区别及性能分析

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!