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...

面试题 相关文章推荐
PHP如何自定义函数
Sep 16 面试题
运行时异常与一般异常有何异同?
Jan 05 面试题
如何打开WebSphere远程debug
Oct 10 面试题
JSF面试题:Jsf中导航的标签是什么
Apr 20 面试题
联强国际笔试题面试题
Jul 10 面试题
普天C++笔试题
Mar 20 面试题
为什么会有内存对齐
Oct 10 面试题
.NET初级开发工程师面试题
Apr 18 面试题
Linux机考试题
Oct 16 面试题
十一个高级MySql面试题
Oct 06 面试题
写clone()方法时,通常都有一行代码,是什么?
Oct 31 面试题
中间件的定义
Aug 09 面试题
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
PHP4之COOKIE支持详解
2006/10/09 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
重写javascript中window.confirm的行为
2012/10/21 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
爬山算法简介和Python实现实例
2014/04/26 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
python飞机大战游戏实例讲解
2020/12/04 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
医学生实习自我鉴定
2013/09/27 职场文书
学生实习推荐信范文
2013/11/26 职场文书
获奖的大学生创业计划书
2014/01/05 职场文书
求职毕业生自荐书
2014/02/08 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
走进科学观后感
2015/06/18 职场文书
新闻稿件写作范文
2015/07/18 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript