2008-03-15

真想不到StringBuilder这么强

关键字: string, stringbuffer, stringbuilder

今天在 jh's blog上看到一篇名为StringBuilder vs StringBuffer vs String.concat - done right的文章,本以为这个话题没什么意思,因为有太多的文章和最佳实践都提到了字符串连接操作和这几个类性能之间的比较,不过还是把这篇文件看了一遍,因为我想知道他是通过什么方法测试的和测试结果如何。

 

大家应该很清楚,字符串连接不论是用“+”,还是concat方法效果都是很差的;唯一有得一拼的就是StringBuffer和StringBuilder了,之前只知道StringBuilder是线程安全的,这是跟StringBuffer主要的一个区别;不过没想到StringBuilder在性能上也是这么出色,无论是在时间还是空间上都略胜于StringBuffer(我自己没有严谨的测试过,这一结论是根据该文章测试结果所得)。

 

仔细想想,J2SE 1.5也发布了3年多了,之前的几个项目也是用的1.5,却还是在用StringBuffer(因为以前用得太习惯了), 看来以后得尝试多用用StringBuilder了,不可能没有好东西不用的道理萨:)

评论
beyondqinghua 2008-03-17
是应用情况,如果对安全方面没什么要求这个是首要选择!
numenzq 2008-03-16
昨天早上起来头昏昏,想错了,谢谢指正:)
fins 2008-03-16
引用
之前只知道StringBuilder是线程安全的,这是跟StringBuffer主要的一个区别

说反了吧??
sql 2008-03-15
引用
之前只知道StringBuilder是线程安全的,这是跟StringBuffer主要的一个区别;


StringBuilder一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。

StringBuffer线程安全的可变字符序列。
发表评论

您还没有登录,请登录后发表评论

numenzq
搜索本博客
存档
最新评论