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

面试题 相关文章推荐
开发中都用到了那些设计模式?用在什么场合?
Aug 21 面试题
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
Jan 18 面试题
VC++笔试题
Oct 13 面试题
聚网科技C++面试笔试题
Sep 01 面试题
SQL Server里面什么样的视图才能创建索引
Apr 17 面试题
ORACLE十问
Apr 20 面试题
什么情况下你必须要把一个类定义为abstract的
Jan 06 面试题
网络安全方面的面试题
Nov 04 面试题
Linux内核产生并发的原因
Nov 08 面试题
Linux文件系统类型
Feb 15 面试题
提高EJB性能都有哪些技巧
Mar 25 面试题
几个判断型的面试题
Jul 03 面试题
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
一个ftp类(ini.php)
2006/10/09 PHP
基于PHP常用函数的用法详解
2013/05/10 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
JObj预览一个JS的框架
2008/03/13 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
为何JS操作的href都是javascript:void(0);呢
2015/11/12 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
vue开发环境配置跨域的方法步骤
2019/01/16 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
python服务器端收发请求的实现代码
2014/09/29 Python
详解Python如何生成词云的方法
2018/06/01 Python
python与caffe改变通道顺序的方法
2018/08/04 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
Python3中的bytes和str类型详解
2019/05/02 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
python3中rank函数的用法
2019/11/27 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
计算机专业职业规划
2014/02/28 职场文书
中学生操行评语大全
2014/04/24 职场文书
董事长岗位职责
2015/02/13 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL