A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© houyunjuan 中级黑马   /  2015-3-27 09:19  /  986 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家有谁总结测试过java中字符串拼接的效率吗? 是+=快一下,还是stringbuffer快一下,还是stringbuilder快一些?最近查了一些书籍,说stringbuilder更快一些,但是属于非线程安全的。+=和stringbuffer稍微逊色一点,但是在线程安全上更有优势。
从查阅的资料上看,stringbuilder是不用每次都重新开辟空间。
大家有谁总结过的,来分享下呗?

6 个回复

倒序浏览
据说是StringBuilder更快一些
回复 使用道具 举报
stringbuilder 更快  下边引用API:   每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
回复 使用道具 举报
还没接触到这里
回复 使用道具 举报
hhh233 发表于 2015-3-27 22:20
stringbuilder 更快  下边引用API:   每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列 ...

嘻嘻,受教了
回复 使用道具 举报

我也最近在看这些 ,刚进基础班
回复 使用道具 举报
stringBuilder不用重新开辟空间,这样节省内存,而用“+”号拼接则相当于重新生成了一个字符串,这样比较占内存,而以前的字符串就冗余在了内存里。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马