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

面试题 相关文章推荐
如何将整数int转换成字串String
Mar 21 面试题
附答案的Java面试题
Nov 19 面试题
公司JAVA开发面试题
Apr 02 面试题
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
Jun 11 面试题
如何查找和删除数据库中的重复数据
Nov 05 面试题
商得四方公司面试题(gid+)
Apr 30 面试题
网络体系结构及协议的定义
Mar 13 面试题
C# Debug和Testing相关面试题
Oct 25 面试题
如何开启linux的ssh服务
Jun 03 面试题
linux面试题参考答案(9)
Jan 29 面试题
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
Apr 13 面试题
一个J2EE项目团队的主要人员组成是什么
Jun 04 面试题
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中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
php mysql 封装类实例代码
2016/09/18 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
PHP操作路由器实现方法示例
2019/04/27 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
javascript 写类方式之六
2009/07/05 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
图片无缝滚动代码(向左/向下/向上)
2013/04/10 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
详解Python if-elif-else知识点
2018/06/11 Python
Python实现图片拼接的代码
2018/07/02 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
python 如何设置守护进程
2020/10/29 Python
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
大课间活动制度
2014/01/18 职场文书
第一书记观后感
2015/06/08 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python