黑马程序员技术交流社区
标题:
StringBuilder和String有什么区别呀?
[打印本页]
作者:
幸福的彼岸
时间:
2014-1-15 10:08
标题:
StringBuilder和String有什么区别呀?
本帖最后由 幸福的彼岸 于 2014-1-15 14:54 编辑
StringBuilder和String有什么区别呀?
作者:
念~
时间:
2014-1-15 10:25
在进行累加操作时,StringBuilder利用Append方法实现,拥有比string快很多的优势,累加次数越多,优势越明显。对于string类型系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象,而StringBuilder则是在原有字符串的基础 上进行累计,而不会多次创建对象
在操作大量字符串,特别是拼接的时候最后是StringBulider效率高,内存占用率小,string会产生很多中间字符串,耗费内存,而且StringBulider还有其他很多方法,增删改查相比string方便的多
作者:
许庭洲
时间:
2014-1-15 10:33
1. String在进行运算时(如赋值,拼接等)会产生一个新的实例,而StringBuilder则不会。所以在大量字符串拼接或频繁对某一个字符串进行操作时最好使用StringBuilder,不要使用String;
2. 如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。
3. 两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。
4. 因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这样一来二去的,耗了不少时间。
5. 而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。
作者:
-淡然一笑
时间:
2014-1-15 13:04
1.在.NET中String是不可改变对象,一旦创建了一个String对象并为它赋值,它就不可能再改变,也就是你不可能改变一个字符串的值
2.String类型在做字符串的连接操作时,效率是相当低的,并且由于每做一个连接操作,都会在内存中创建一个新的对象,占用了大量的内存空间。这样就引出StringBuilder对象,StringBuilder对象在做字符串连接操作时是在原来的字符串上进行修改,改善了性能
作者:
矫情
时间:
2014-1-15 13:07
String 对象是恒定不变的,而StringBuilder则是可变的
StringBuilder是.NET提供的动态创建String对象的高效方式,以克服String对象恒定性带来的性能 影响 。
如果只是单一的对一个string对象做少量几次的操作,则用string 对象
如果需要大量的字符拼接时,这时就一定要用StringBulder对象
因为String 对象的恒定性,创建一个字符后,其不会再改变,对于string的操作都会重新 生成一个新副本
而stringBuilder则是针对同一字符对象做处理,只会生成一个对象。
所以在不同情况下要用不同的对象
作者:
沈可
时间:
2014-1-15 14:03
String类有不可改变性。每次执行字符操作时,都会创建一个新的String对象。 StringBuilder 类解决了对字符串进行重复修改的过程中创建大量对象的问题。初始化一个StringBuilder 之后,它会自动申请一个默认的StringBuilder 容量(默认值是16),这个容量是由Capacity来控制的.并且允许,我们根据需要来控制Capacity的大小,也可以通过Length来获取或设置StringBuilder 的长度.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2