高分请教!stringbuilder和stringbuffer哪个好?

mxx123 2010-05-18 09:43:03
在使用中,stringbuilder和stringbuffer哪个好,请分别举例说明下。最好是实际程序中的例子!
...全文
151 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
mxx123 2010-05-18
  • 打赏
  • 举报
回复
什么情况下会在多线程中修改字符串呢?
chenhuaike 2010-05-18
  • 打赏
  • 举报
回复
当改变字符串内容时,采用StringBuffer能获得更好的性能,
在单线程程序中的性能比StringBuffer比StringBuilder类高
smi_ling 2010-05-18
  • 打赏
  • 举报
回复
ding
BearKin 2010-05-18
  • 打赏
  • 举报
回复
一个线程安全(StringBuffer)
另一个不是线程安全(StringBuilder)

根据这个来衡量使用哪个吧
licip 2010-05-18
  • 打赏
  • 举报
回复
学习了。
chenying0804 2010-05-18
  • 打赏
  • 举报
回复
顶楼上
colin_pxx 2010-05-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xuhbiao 的回复:]
stringbuilder是非线程安全的,效率相对较高,一般处理局部字符串的操作,也就是单个线程修改字符串。
StringBuffer线程安全,多线程处理同一个字符串也不会有问题。。。
[/Quote]
顶这个
NONE9 2010-05-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ticmy 的回复:]

用起来其实都差不多

理论上StringBuilder快一点

实际中还是+用的最多
[/Quote]
现在JDK内部已经优化了,程序里使用+操作常量直接被编译成StringBuilder操作了。。
龙四 2010-05-18
  • 打赏
  • 举报
回复
用起来其实都差不多

理论上StringBuilder快一点

实际中还是+用的最多
zhaining522 2010-05-18
  • 打赏
  • 举报
回复
不分好坏
只分适用 不适用 你的需要

stringbuffer 是线程安全
如果在不考虑线程安全的情况 用stringbuffer 的性能不如 stringbulider

如果是现成安全的 哪就一定要用 stringbuffer
Mars_Ma_OK 2010-05-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xuhbiao 的回复:]
stringbuilder是非线程安全的,效率相对较高,一般处理局部字符串的操作,也就是单个线程修改字符串。
StringBuffer线程安全,多线程处理同一个字符串也不会有问题。。。
[/Quote]

up!
japt88_115656292 2010-05-18
  • 打赏
  • 举报
回复
stringbuilder 效率高
stringbuffer 是线程安全的

jdk是现有第1个才有第2的, 理论上讲你只要用第1个就行了
yudgame 2010-05-18
  • 打赏
  • 举报
回复
顶楼上
xinlan1022 2010-05-18
  • 打赏
  • 举报
回复
顶楼上。。。。。。
lu76689614 2010-05-18
  • 打赏
  • 举报
回复
顶楼上
NONE9 2010-05-18
  • 打赏
  • 举报
回复
stringbuilder是非线程安全的,效率相对较高,一般处理局部字符串的操作,也就是单个线程修改字符串。
StringBuffer线程安全,多线程处理同一个字符串也不会有问题。。。
小李子 2010-05-18
  • 打赏
  • 举报
回复
stringbuilder是非同步的,如果你不用到多线程,它理论上会快一点
stringbuffer是线程安全的
accphc 2010-05-18
  • 打赏
  • 举报
回复
buffer线程安全
buider非线程安全
执行效率上后者高
小李子 2010-05-18
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 chenhuaike 的回复:]

当改变字符串内容时,采用StringBuffer能获得更好的性能,
在单线程程序中的性能比StringBuffer比StringBuilder类高
[/Quote]
比如多个线程更新同一个公共消息字符串时

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧