黑马程序员技术交流社区

标题: stringBudeul和stringbuffere区别 [打印本页]

作者: e644638045    时间: 2014-7-15 15:01
标题: stringBudeul和stringbuffere区别
帮我回答下!!!!
作者: SLJ_920808    时间: 2014-7-15 15:16
本帖最后由 SLJ_920808 于 2014-7-15 15:21 编辑

是不是应该是StringBuffer和StringBuilder 的区别 ?
StringBuffer(线程安全) 和StringBuilder(非线程安全)都是字符串变量。
StringBuffer 可变,是对StringBuffer 对象本身进行操作,而不是生成新的对象。一个类似于String的字符缓存区,可安全用于多个线程,可以在必要时对这些方法进行同步。
StringBuilder  一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。


作者: zhxu188    时间: 2014-7-15 17:01
StringBuffer 是对象本身进行操作,而不是生成新的对象,再改变对象引用。所以在一般情况下,和String相比我们推荐使用 StringBuffer ,特别是字符串对象经常改变的情况下。StringBuffer 线程安全的可变字符序列。类似于 String 的字符串缓冲区,但不能修改。可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。

StringBuilder 类支持StringBuffer所有的操作,但由于它不执行同步,所以速度更快。但是如果将 StringBuilder 的实例用于多个线程是不安全的。需要这样的同步,则建议使用 StringBuffer 。在大部分情况下 StringBuilder > StringBuffer



作者: 风决    时间: 2014-7-15 17:24
StringBuffer是线程不安全的,StringBuilder是线程安全的,二者实现的功能基本相同,在不考虑安全性方面,StringBuffer效率比StringBuilder效率高。
作者: 风决    时间: 2014-7-15 17:30
不好意思刚回答错了

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







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2