bycj.net
当前位置:首页 >> String 与StringBuilDEr有什么区别 >>

String 与StringBuilDEr有什么区别

先说可变与不可变,不变是一种设计模式,意思是说当此对象创建后,你不能改变它的内部状态,对String,你创建了一个String,你能通过set方法改变它的长度length吗.StringBuilder既可以.StringBuilder类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快.

stringbuilder 主要是解决对字符串做频繁修改操作时的性能问题,有一个容量的概念,先分配好一定的内存,在字符串长度达到上限之前,全部在此内存内操作,不涉及内存的重新分配和回收.而 string 每次修改都会重新创建一个对象.打个比方:你开发一个程序,但每次增加、修改和删除代码都要找领导申请汇报,你说效率高不?后来领导说,改你自己模块内的代码不用找我了,你的地盘你作主,于是

String可以储存和操作字符串,即包含多个字符的字符数据.这个String类提供了存储数值不可改变的字符串. StringBuilder是线程不安全的,运行效率高,如果一个字符串变量是在方法里面定义,这种情况只可能有一个线程访问它,不存在不安全的因素

两个类的工作原理不同:string类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.net框架下,这个操作实在是划不来.因为系统先是把两个字符串写入内存,接着删除原来的string对象,然后创建一个string对象,并读取内存中的数据赋给该对象.这一来二去的,耗了不少时间. 而使用system.text命名空间下面的stringbuilder类就不是这样了,它提供的append方法,能够在已有对象的原地进行字符串的修改,简单而且直接. 如果你要对某个字符串进行大量的添加操作,那么stringbuilder类所耗费的时间和string类简直不是一个数量级的.

如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类.两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实

String 对象是不可改变的.每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.

自己总结,简而言之,stringbuilder和string的区别在于:stringbuilder是变长的.string是定长的.以下详细介绍String和StringBuilder的使用:-------------------------------------------------------------------------------------------------------我们先看一个例子 string s1

Stringbuilder类是直接用于字符串操作的类,打个比方把(1)string aa="123456";(2)aa+="789";(3)StringBuilder text=new StringBuilder("123456",12);(4)text.Append("789");如果你输出aa,和text 你会发现他们的输出内容是一样的.

还有一个stringbuffer,三个都容易搞混,一起说下吧:1.三者在执行速度方面的比较:StringBuilder>StringBuffer>String2.String<(StringBuffer,StringBuilder)的原因String:字符串常量StringBuffer:字符创变量StringBuilder:字符创变量从上面的

StringBuilder MyStringBuilder = new StringBuilder("Hello World!"); 设置容量和长度 虽然 StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值.此值称为该对象的容量

网站首页 | 网站地图
All rights reserved Powered by www.bycj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com