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面试题
Jul 29 面试题
你常见到的runtime exception
Sep 05 面试题
如何获取某个日期是当月的最后一天
Dec 05 面试题
经典c++面试题三
Jul 08 面试题
杭州SQL浙江浙大网新恩普软件有限公司
Jul 27 面试题
SQL Server里面什么样的视图才能创建索引
Apr 17 面试题
可靠的数据流传输TCP
Mar 15 面试题
Shell如何接收变量输入
Aug 06 面试题
AJAX应用和传统Web应用有什么不同
Aug 24 面试题
Python里面如何实现tuple和list的转换
Jun 13 面试题
如何用Python来进行查询和替换一个文本字符串
Jan 02 面试题
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入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
python 以16进制打印输出的方法
2018/07/09 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
什么叫做SQL注入,如何防止
2016/10/04 面试题
摄影展策划方案
2014/06/02 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
活动总结书怎么写
2015/05/11 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android