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

面试题 相关文章推荐
如何获取某个日期是当月的最后一天
Dec 05 面试题
SQL里面如何插入自动增长序列号字段
Mar 29 面试题
几道数据库的概念性面试题
May 30 面试题
什么是网络协议
Apr 07 面试题
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
Mar 27 面试题
如何开启linux的ssh服务
Jun 03 面试题
软件缺陷的分类都有哪些
Aug 22 面试题
设计模式的基本要素是什么
Apr 21 面试题
Java如何读取CLOB字段
Oct 10 面试题
Java中各种基本数据类型的默认值都是什么
Dec 22 面试题
如何在Shell脚本中使用函数
Sep 06 面试题
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读取目录下所有文件的代码
2008/01/07 PHP
php生成缩略图示例代码分享(使用gd库实现)
2014/01/20 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
security.js实现的RSA加密功能示例
2018/06/06 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
python实现多线程抓取知乎用户
2016/12/12 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
Python的logging模块基本用法
2020/12/24 Python
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
Funko官方商店:源自美国,畅销全球搪胶收藏玩偶
2018/09/15 全球购物
意大利和国际奢侈品牌购物网站:Suitnegozi.com
2021/01/15 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
软件测试面试题
2014/01/05 面试题
J2EE面试题
2016/03/14 面试题
生产车间班组长岗位职责
2014/01/06 职场文书
运动会广播稿60字
2014/01/15 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python