C# String和StringBuilder简单对比【整理】
来源:互联网 发布:ncbi批量下载sra数据 编辑:程序博客网 时间:2024/05/17 22:38
在.NET中String是不可改变对象,一旦创建了一个String对象并为它赋值,它就不可能再改变,也就是你不可能改变一个字符串的值。StringBuilder是引用类型,这就是如果我们创建很多个相同值的字符串对象,它在内存中的指向地址应该是一样的。也就是说,当我们创建了字符串对象a,它的值是“1234”,当我们再创建一个值为“1234”的字符串对象b时它不会再去分配一块内存空间,而是直接指向了a在内存中的地址。
String类型在做字符串的连接操作时,效率是相当低的,并且由于每做一个连接操作,都会在内存中创建一个新的对象,占用了大量的内存空间。这样就引出StringBuilder对象,StringBuilder对象在做字符串连接操作时是在原来的字符串上进行修改,改善了性能。这一点我们平时使用中也许都知道,连接操作频繁的时候,使用StringBuilder对象
看出用String来做字符串的连接时效率非常低,但并不是所任何情况下都要用StringBuilder,当我们连接很少的字符串时可以用String,但当做大量的或频繁的字符串连接操作时,就一定要用StringBuilder。
C# String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能
————————————————————
string类由于具有不可变性(即对一个string对象进行任何更改时,其实都是创建另外一个string类的对象),所以当需要频繁的对一个string类对象进行更改的时候,建议使用StringBuilder类,StringBuilder类的原理是首先在内存中开辟一定大小的内存空间,当对此StringBuilder类对象进行更改时,如果内存空间大小不够,会对此内存空间进行扩充,而不是重新创建一个对象,这样如果对一个字符串对象进行频繁操作的时候,不会造成过多的内存浪费,其实本质上并没有很大区别,都是用来存储和操作字符串的,唯一的区别就在于性能上。
- C# String和StringBuilder简单对比【整理】
- String和StringBuilder的简单对比
- String,StringBuffer,StringBuilder简单对比
- C#中StringBuilder类和string的使用及对比
- 【C#】StringBuilder和string对比
- string 和 StringBuilder的效率对比
- String、StringBuffer和StringBuilder的性能对比
- string拼接和StringBuilder性能对比
- C#中的string和StringBuilder
- C# StringBuilder和String区别
- C#基础----string和stringBuilder
- C# String和StringBuilder简介
- String 对比 StringBuilder
- String,StringBuilder性能对比
- String StringBuilder StringBuffer 对比
- String、StringBuffer、StringBuilder对比
- String StringBuilder StringBuffer 对比
- String StringBuilder StringBuffer 对比
- 不能打开数据库的一次处理 ORA-01092: ORACLE instance terminated. Disconnection forced
- tomcat远程调试配置方法
- 运行时库概念
- 浅析 Java Thread.join()
- live555 vlc sourcecode
- C# String和StringBuilder简单对比【整理】
- 在windows的PHP环境下安装Nginx。
- linux发行版i386/i686/x86-64/的区别
- Android 打包签名
- 个人(做人做事工作)心得
- 企业运营中的渐进螺旋演化套路与线性思维
- Android项目导入出现问题解决方案
- 下载频道12月热门资源TOP100强力推荐!
- 安卓巴士总结了近百个Android优秀开源项目,覆盖Android开发的每个领域