LOGO

string和stringBuilder的区别

2020.09.09

string对象

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

stringbuilder对象

StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值,当修改 StringBuilder 时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。

两者之间的不同

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

注意

string 对象时恒定不变的,stringBuider对象表示的字符串是可变的。stringBuilder是.net提供的动态创建string的高效方式,以克服string对象恒定性带来的性能影响。

但是对于简单的字符串连接操作,在性能上stringBuilder并不一定总是优于string。因为stringBuider对象创建代价较大,在字符串目标连接较少的情况下,过度滥用stringBuilder会导致性能的浪费,只有大量的或者无法预知次数的字符串操作,才考虑stringBuilder来实现。

stringbuilder_string和stringBuilder的区别相关推荐

  1. String、StringBuffer、与StringBuilder的区别

    原文:http://www.cnblogs.com/sevenlin/p/sevenlin_StringBuffer_StringBuilder20150806.html String.StringB ...

  2. php 有 stringbuffer,string,stringbuffer以及stringbuilder的区别

    string,stringbuffer以及stringbuilder的区别? 小编在一次电话面试中,被问过StringBuilder是线程安全的吗,脱口而出是安全的,结果人家质疑我你是2年开发经验吗. ...

  3. JavaSE(二十五)——String与StringBuffer、StringBuilder的区别、创建对象的几种方法、Http和Https的区别

    文章目录 1. String与StringBuffer.StringBuilder的区别 2. Java创建对象的几种方法 3. Http和Https的区别 1. String与StringBuffe ...

  4. String,StringBuffer与StringBuilder的区别

    String,StringBuffer与StringBuilder的区别 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全 ...

  5. string 与stringbuilder的区别

    string 与stringbuilder的区别 C#   String   对象是不可改变的.每次使用   System.String   类中的方法之一时,都要在内存中创建一个新的字符串对象,这就 ...

  6. c#中的string和StringBuilder的区别

    string和StringBuilder的区别 解析c#中的string和StringBuilder的区别,只有非常了解后我们才能更好的编程和灵活使用. 区别 1.类 String 表示字符串, 比如 ...

  7. String、StringBuffer和StringBuilder的区别

    String.StringBuffer和StringBuilder的区别: 文章目录 String StringBuffer StringBuilder StringBuffer是如何实现线程安全的呢 ...

  8. 【翻译】Java中String, StringBuffer, StringBuilder的区别

    2019独角兽企业重金招聘Python工程师标准>>> String 是  Java 中最重要的类之一,并且任何刚开始做Java编程的人,都会 用String定义一些内容,然后通过著 ...

  9. stringbuilder_String,StringBuilder,StringBuffer三者的区别?

    (1) 问题分析 考官主要想对final修饰符的作用,同步锁,以及数据类型的考察.在工作中为什么业务层频繁的拼接sql不用string而用StringBuilder,为什么Stringbuilder比 ...

最新文章

  1. 四 s5p4418 Android 对can总线的支持 支持波特率修改
  2. 【Linux网络编程】并发服务器之多进程模型
  3. (35)VHDL实现JK触发器
  4. hsrp+route-map 解决多路由器多isp
  5. python能自学成功吗-想自学Python,如何才能坚持下来?
  6. 基于DEM数据的河流提取
  7. stm32矩阵键盘学习笔记
  8. 日历之 poj1008玛雅日历
  9. 群晖nas介绍文档_我的NAS我的地盘 篇三:群晖NAS软件介绍与应用之DS file篇
  10. m3u8转换到mp4 python_Python 实现MP4视频转M3u8视频
  11. 华为java一个月写多少行代码_[财经]阿里员工吐槽华为:面试官1万行代码都没写过? - 南方财富网...
  12. domian index域索引和全文索引
  13. Linux OS7 常用
  14. HTML语言中代表网页标题的标签是,html标题标记 在html中,标题标签一共有几级?
  15. 在excel文件上设置下拉选项
  16. python从文件中读取数据_【Python】从文件中读取数据
  17. 送书送书送书,(包邮)送,仅此而已!
  18. 数据结构中树的直径问题
  19. maven详解2020
  20. STM32白话文教程(三)内置按键模块、外接按键检测 三句话让你玩明白按键 水银倾斜模块

热门文章

  1. 后置增强this advice advises no methods_增强消防意识 提高消防能力 重庆天一新城小学积极参加消防技能比赛活动...
  2. 跨境电商ERP管理,让你节约跟多时间!
  3. influxDB框架 数据存储 TSM 数据操作等详解
  4. vue如何使用原生js写动画效果_Vue中的动画效果
  5. python中协程与函数的区别_python协程和异步IO
  6. form表单input使用disabled后提交不能获取表单值的解决方法
  7. Mybatis-Plus代码生成器初体验
  8. 3说明书_怎么才能做好产品说明书翻译?知行翻译公司总结了3点
  9. [Ext JS 4] MVC 应用程序框架
  10. jqGrid 实现这种select - 同一列的不同行的select 的option 不同