首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StringBuffer vs StringBuilder

StringBuffer vs StringBuilder
EN

Stack Overflow用户
提问于 2015-09-16 22:08:10
回答 2查看 4.3K关注 0票数 2

我正在选修算法实现类。我的老师提到了StringBuffer和StringBuilder,他说StringBuffer比StringBuilder更安全,因为在线程方面。这是真的吗?如果是这样,这意味着什么?我查过这个问题,很多答案都提到了同步。谁能解释一下这是什么意思,以及它是如何让StringBuffer比StringBuilder更安全的?

EN

回答 2

Stack Overflow用户

发布于 2015-09-16 22:10:02

StringBuffer同步了所有的方法。

来自java doc

一个线程安全、可变的字符序列

同步是同步线程对代码部分访问的系统,以便至多一个线程可以执行同步块。

如果您的代码不是多线程的,或者仅仅是您正在使用的StringBuffer没有在线程之间共享,那么就使用StringBuilder。它的速度更快。

来自StringBuilder的javadoc

一个可变的字符序列。此类提供了与StringBuffer兼容的API,但使用不能保证API。此类被设计为在字符串缓冲区是由单个线程(通常是这种情况)使用的的地方,用作StringBuffer的临时替代。在可能的情况下,建议优先使用此类而不是 StringBuffer,因为在大多数实现下,它的速度会更快。

票数 5
EN

Stack Overflow用户

发布于 2015-09-16 22:23:41

由于它的所有方法都是同步的,这意味着即使您有100个(或更多)线程同时使用和修改它,它也会在处理其他请求之前完全执行每个操作。对于StringBuilder,您就没有这样的保证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32610983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档