String、StringBuffer和StringBuild的区别与联系.doc

String、StringBuffer和StringBuild的区别与联系.doc

ID:62152678

大小:46.50 KB

页数:3页

时间:2021-04-19

String、StringBuffer和StringBuild的区别与联系.doc_第1页
String、StringBuffer和StringBuild的区别与联系.doc_第2页
String、StringBuffer和StringBuild的区别与联系.doc_第3页
资源描述:

《String、StringBuffer和StringBuild的区别与联系.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、个人收集整理勿做商业用途String、StringBuffer和StringBuilder的区别String类分别用于实现IComparable、ICloneable、IConvertible、IEnumerable 和IComparable 接口。使用Convert 类进行转换,而不是使用此类型的IConvertible显式接口成员实现。String 类提供的成员执行以下操作:比较 String 对象;返回 String 对象内字符或字符串的索引;复制String对象的值;分隔字符串或组合字符串;修改字符串的值;将数字、日期和时间或枚举值的格式设置为字符串;对字符

2、串进行规范化。·使用Compare、CompareOrdinal、CompareTo、Equals、EndsWith和StartsWith方法进 行比较。·使用IndexOf、IndexOfAny、LastIndexOf和LastIndexOfAny方法可获取字符串中子字符串或 Unicode字符的索引。 ·使用Copy和CopyTo可将字符串或子字符串复制到另一个字符串或 Char类型的数组。·使用 Substring 和Split方法可通过原始字符串的组成部分创建一个或多个新字符串;使用 Concat和 Join 方法可通过一个或多个子字符串创建新字符串。·使用

3、 Insert、Replace、Remove、PadLeft、PadRight、Trim、TrimEnd 和TrimStart可修改字符串的全部或部分。·使用ToLower、ToLowerInvariant、ToUpper 和ToUpperInvariant方法可更改字符串中Unicode字符的大小写。 ·使用Format,可将字符串中的一个或多个格式项占位符替换为一个或多个数字、日期和时间或枚举值的文本表示形式。·使用Length属性可获取字符串中 Char对象的数量;使用 Chars属性可访问字符串中实际的 Char对象。·使用 IsNormalized方法可测

4、试某个字符串是否已规范化为特定的范式。使用 Normalize 方法可创建规范化为特定范式的字符串。StringBuilder类此类表示值为可变字符序列的类似字符串的对象。之所以说值是可变的,是因为在通过追加、移除、替换或插入字符而创建它后可以对它进行修改。String和StringBuilder、StringBuffer的区别:1.String对象是不可改变的。每次使用System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,创建新的String个人收集整理勿做商业用途对象

5、相关的系统开销可能会非常昂贵。1.如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。例如,当在一个循环中将许多字符串连接在一起时,使用StringBuilder类可以提升性能。3.字符串是Unicode字符的连续集合,通常用于表示文本,而 String 是表示字符串的System.Char对象的连续集合。String的值构成该连续集合的内容,并且该值是恒定的。由于String的值一旦创建就不能再修改,所以称它是恒定的。看似能修改String的方法实际上只是返回一个包含修改内容的新String。4.StringBuffe

6、r可改变的Unicode字符序列,允许并发操作,是线程安全的例:对于字符串连接String str = "A" + "B" + "C" + "D";产生:"AB"、"ABC"、"ABCD"在串池中产生的"AB"、"ABC"明显是多余对象,浪费空间。解决方案:String s = null;StringBuffer sb = new StringBuffer("A");sb.append("B");sb.append("C");sb.append("D");s = sb.toString();5.StringBuilder:可改变的Unicode字符序列操作同Stri

7、ngBuffer,只是不支持并发操作,非线程安全的 6.不考虑线程安全前提下,StringBuild性能最高,StringBuffer次之,String比较差. 为什么StringBuffer的性能比String高?主要原因在于String类是不可变类,任何对String引用指向的字符串作出的修改都会导致生成新的字符串(对象),而对StringBuffer的修改则不会导致新对象的产生。大家都知道,生成新对象是十分耗时的事情,自然导致对String对象的修改性能下降不少。那么为什么StringBuilder的性能比StringBuffer的高呢?这则与线程安全有关

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。