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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© e644638045 中级黑马   /  2014-7-15 15:01  /  1087 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

帮我回答下!!!!

4 个回复

倒序浏览
本帖最后由 SLJ_920808 于 2014-7-15 15:21 编辑

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

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

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


回复 使用道具 举报
StringBuffer是线程不安全的,StringBuilder是线程安全的,二者实现的功能基本相同,在不考虑安全性方面,StringBuffer效率比StringBuilder效率高。
回复 使用道具 举报
不好意思刚回答错了

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


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马