StringBuilder和String的区别


Posted in 面试题 onMay 18, 2015
String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用 String
另外,对于 String 我们不得不多说几句:
1.它是引用类型,在堆上分配内存
2.运算时会产生一个新的实例
3.String 对象一旦生成不可改变(Immutable)
3.定义相等运算符(== 和 !=)是为了比较 String 对象(而不是引用)的值
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example22
{
class Program
{
static void Main(string[] args)
{
const int cycle = 10000;
long vTickCount = Environment.TickCount;
String str = null;
for (int i = 0; i str += i.ToString();
Console.WriteLine(“String: {0} MSEL”, Environment.TickCount – vTickCount);
vTickCount = Environment.TickCount;
//看到这个变量名我就生气,奇怪为什么大家都使它呢? :)
StringBuilder sb = new StringBuilder();
for (int i = 0; i sb.Append(i);
Console.WriteLine(“StringBuilder: {0} MSEL”, Environment.TickCount – vTickCount);
string tmpStr1 = “A”;
string tmpStr2 = tmpStr1;
Console.WriteLine(tmpStr1);
Console.WriteLine(tmpStr2);
//注意后面的输出结果,tmpStr1的值改变并未影响到tmpStr2的值
tmpStr1 = “B”;
Console.WriteLine(tmpStr1);
Console.WriteLine(tmpStr2);
Console.ReadLine();
}
}
}
结果:
String: 375 MSEL
StringBuilder: 16 MSEL
A
A
B
A

Tags in this post...

面试题 相关文章推荐
JDO的含义
Nov 17 面试题
C面试题
Oct 08 面试题
static全局变量与普通的全局变量有什么区别
May 27 面试题
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
Jun 02 面试题
"引用"与多态的关系
Feb 01 面试题
使用索引(Index)有哪些需要考虑的因素
Oct 19 面试题
如何保障Web服务器安全
May 05 面试题
说出你对remoting 和webservice的理解和应用
Jun 08 面试题
explicit和implicit的含义
Nov 15 面试题
Linux如何命名文件--使用文件名时应注意
Jan 22 面试题
编程用JAVA解析XML的方式
Jul 07 面试题
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
Mar 16 面试题
explicit和implicit的含义
Nov 15 #面试题
C#如何调用Word并打开一个Word文档
May 08 #面试题
C# .NET面试题
Nov 28 #面试题
初级软件工程师面试题 Junior Software Engineer Interview
Feb 15 #面试题
params有什么用
Mar 01 #面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
Jan 04 #面试题
西安当代医院管理研究院笔试题
Dec 11 #面试题
You might like
PHP中date与gmdate的区别及默认时区设置
2014/05/12 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
vue2.0 路由模式mode="history"的作用
2018/10/18 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
python实现比较两段文本不同之处的方法
2015/05/30 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
WiFi云数码相框:Nixplay
2018/07/05 全球购物
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
农民工创业典型事迹
2014/01/25 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
《学会合作》教学反思
2014/04/12 职场文书
交通事故协议书
2014/04/15 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
企业文化宣传标语
2014/06/09 职场文书
主题党日活动总结
2014/07/08 职场文书
行政答辩状范文
2015/05/21 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
Python实现拼音转换
2021/06/07 Python
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL
Python安装使用Scrapy框架
2022/04/12 Python
Python自动化实战之接口请求的实现
2022/05/30 Python