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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 咪咪 黑马帝   /  2011-11-15 20:49  /  2044 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

stingbuilder是属于string类吗?

4 个回复

倒序浏览
咪咪 来自手机 黑马帝 2011-11-15 20:50:31
沙发
是与字符串型数组有什么区别
回复 使用道具 举报
不是字符串数组 是CharSequence。
String StringBuilder StringBuffer 都是实现了CharSequence接口的字符序列。
回复 使用道具 举报
1.String 对象是不可改变的。都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,创建新的 String 对象相关的系统开销可能会非常昂贵。
2.StringBuilder:可改变的Unicode字符序列操作同StringBuffer,只是不支持并发操作,非线程安全的。不考虑线程安全建议使用StringBuilder
回复 使用道具 举报
String 字符串常量
StringBuffer 字符串变量(线程安全)

String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响。 特别是字符串对象经常改变的情况下,一般情况下我们推荐使用 StringBuffer。

大部分情况下StringBuffer要好于String
StringBuffer是线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。

使用场合:
如果要操作少量的数据用String
多线程操作字符串缓冲区下操作大量数据StringBuffer
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马