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

面试题 相关文章推荐
.NET面试问题集
Dec 08 面试题
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
Jul 27 面试题
C#笔试题和英文面试题
Feb 07 面试题
星空联盟C# .net笔试题
Dec 05 面试题
C# Debug和Testing相关面试题
Oct 25 面试题
linux面试题参考答案(11)
Nov 26 面试题
介绍一下RMI的基本概念
Dec 17 面试题
请写出一段Python代码实现删除一个list里面的重复元素
Dec 29 面试题
什么时候需要进行强制类型转换
Sep 03 面试题
高级Java程序员面试题
Jun 23 面试题
介绍一些UNIX常用简单命令
Nov 11 面试题
J2EE面试题集锦(附答案)
Aug 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 远程关机实现代码
2009/11/10 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
php从给定url获取文件扩展名的方法
2015/03/14 PHP
php语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
浅谈jQuery添加的HTML,JS失效的问题
2016/10/05 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
Javascript var变量删除原理及实现
2020/08/26 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
Python实现二叉搜索树
2016/02/03 Python
python通过getopt模块如何获取执行的命令参数详解
2017/12/29 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
基于Python解密仿射密码
2019/10/21 Python
如何在python中实现线性回归
2020/08/10 Python
美国现代家具购物网站:LexMod
2019/01/09 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
大学班级计划书
2014/04/29 职场文书
校园元旦活动总结
2014/07/09 职场文书
商铺门面租房协议书
2014/10/21 职场文书
乡镇党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
感恩教育主题班会
2015/08/12 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
Java移除无效括号的方法实现
2021/08/07 Java/Android