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

面试题 相关文章推荐
一套VC试题
Jan 23 面试题
iostream与iostream.h的区别
Jan 16 面试题
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
Apr 28 面试题
如何删除一个表里面的重复行
Jul 13 面试题
2019年分享net面试的经历和题目
Aug 07 面试题
使用C#编写创建一个线程的代码
Jan 22 面试题
软件配置管理有什么好处
Apr 15 面试题
EJB面试题
Jul 28 面试题
META-INF文件夹中的MANIFEST.MF的作用
Jun 21 面试题
正隆泰信息技术有限公司上机题
Jun 14 面试题
如何执行一个shell程序
Nov 23 面试题
四种会话跟踪技术
May 20 面试题
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个人网站架设连环讲(四)
2006/10/09 PHP
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
php调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
php设计模式之委托模式
2016/02/13 PHP
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
python字典get()方法用法分析
2015/04/17 Python
python中zip()方法应用实例分析
2016/04/16 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
python实现随机漫步方法和原理
2019/06/10 Python
python实现大文件分割与合并
2019/07/22 Python
Python input函数使用实例解析
2019/11/22 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
英国女士家居服网站:hush
2017/08/09 全球购物
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
幼儿教师考核制度
2014/01/25 职场文书
《母亲的恩情》教学反思
2014/02/13 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫
python运行脚本文件的三种方法实例
2022/06/25 Python