黑马程序员技术交流社区

标题: 校园招聘 .NET笔试题求教 比较String与StringBuilder [打印本页]

作者: Destiny.    时间: 2013-10-27 16:20
标题: 校园招聘 .NET笔试题求教 比较String与StringBuilder
本帖最后由 Destiny. 于 2013-10-29 13:20 编辑

比较String与StringBuilder两者有什么不同。氛围一下4个方面:

1.存储空间
2.父类/基类是什么
3.占用内存的大小(运行快慢)
4.应用范围


记忆可能有偏差,大概是这4个方向。

作者: ィSlick    时间: 2013-10-27 16:31
String是不可变对象,一旦被创建,就不能修改它的值   也就是没对string附一次值都会在堆里开辟一个内存空间。
StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
作者: 夢醒了⊙﹏⊙b心    时间: 2013-10-27 18:03
String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。
string继承于object stringbuiler继承与system.Text
作者: 张小康    时间: 2013-10-27 19:06
1、string是引用类型,在堆上分配内存
2、stringBuilder的父类是System.Object\System.Text
        string的父类是System.Object
3、String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用 String
4、量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder
作者: 何俞平    时间: 2013-10-27 19:18
1.string和StringBuilder的值都存储在堆中。
2.string继承于object, stringbuiler继承于system.Text
3.string变量改变时需要在内存中再开一块空间,然后重新指向新的字符串,而StringBuilder始终对一块内存进行操作。所以在字符串进行拼接的时候比较快,建议进行大规模字符串拼接时使用StringBuilder。
作者: 追溯客    时间: 2013-10-27 20:04
问题解决请将分类设为"已解决".黑马有你更精彩
作者: 李洋    时间: 2013-10-28 10:44
System.String具有以下五个特点:

1.  String是引用类型,在堆上分配内存。

2.  String对象一旦生成,就不可改变(Immutable)。

3.  String提供了大量便捷的字符串操作函数。

4.  String运算时会产生一个新的实例。

5. 在程序中定义相等运算符(==)和(!=),可以方便比较String对象的值(而不是引用)。

StringBuilder具有以下两个特点:

StringBuilder对象是动态对象,允许扩充它所封装的字符串中的字符数量。

StringBuilder可以用于修改StringBuilder中的内容
作者: 黑飞马    时间: 2013-10-28 11:02
我就从你说的这几个方面帮你总结一下
作者: 黑飞马    时间: 2013-10-28 11:15
我就从你说的这几个方面总结一下:
   1.String的存储空间是不可以发生变化的,而StringBuilder是可变的,如 拼接字符串时 String会从新分配内存,而StringBuilder不会分配

  2.String的基javascript:;类是System   ,StringBuilder的基类是System.Text

  3.在拼接字符串时,StringBuilder的运行速度比String快 ,因为String 在拼接字符串时 会产生新的字符串中间变量,这样就会给系统产生不必要的系统开销,可不要小看这一点开销哦。

  4.一般  在拼接字符串以及修改字符串中的某个字符 时使用StingBuilder,其他地方就没有多大的区别




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