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数据运算类型都有哪些
Nov 05 面试题
JDO的含义
Nov 17 面试题
公司JAVA开发面试题
Apr 02 面试题
一篇.NET面试题
Sep 29 面试题
TCP/IP的分层模型
Oct 27 面试题
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
Jul 26 面试题
C#面试题
May 06 面试题
linux面试题参考答案(6)
Jun 23 面试题
AJax面试题
Nov 25 面试题
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
Feb 04 面试题
Java面试题:为什么要用Java
May 11 面试题
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
Apr 23 面试题
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/07/27 PHP
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
php图片上传类 附调用方法
2016/05/15 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
jQuery 使用个人心得
2009/02/26 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
2018/11/06 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
Python使用turtule画五角星的方法
2015/07/09 Python
python正则表达式之作业计算器
2016/03/18 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
python 等差数列末项计算方式
2020/05/03 Python
Python3开发环境搭建详细教程
2020/06/18 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
C#面试题
2016/05/06 面试题
儿科护理实习自我鉴定
2013/09/19 职场文书
机关保密承诺书
2014/06/03 职场文书
竞选学委演讲稿
2014/09/13 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis