C#基础5.1:StringBuilder和StopWatch类
PS:代码中有注释和讲解
为什么需要用到StringBuilder?
- 当需要对一个字符串变量重复赋值时,在内存中会产生大量的垃圾数据信息
- 这是因为string是定义在堆上的,而在栈上有一个指向当前字符串的指针,如果重新对当前字符串赋值,那么它并不会在原串上进行修改,而是在堆上重新开辟一个新空间存储修改后的新字符串,并让栈上的指针重新指向它
- 也就是说:对string多次操作,时间效率低,空间浪费严重
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; //StringBuilder类的命名空间
using System.Threading.Tasks;
using System.Diagnostics; //Stopwatch类的命名空间
namespace C4_程序设计
{class StringBuilder和StopWatch类{static void Main(){StringBuilder sb = new StringBuilder(); //定义StringBuilder类sb.Append("one");sb.Append(11017); //相当于字符串连接sb.Append(true);Console.WriteLine(sb.ToString()); //输出结果:one11017Truesb.Clear();Console.WriteLine(sb.ToString()); //输出结果为空字符Stopwatch tim = new Stopwatch(); //计时器,用于程序运行计时tim.Start(); //计时器开始for (int i = 0; i <= 10000; i++)sb.Append(i);tim.Stop(); //计时器结束Console.WriteLine(tim.Elapsed); //00:00:00.0016064,此为StringBuilder()追加耗时string str = "";tim.Start();for (int i = 0; i <= 10000; i++)str += i;tim.Stop();Console.WriteLine(tim.Elapsed); //00:00:00.0581941,此为string追加耗时//tim.Elapser:输出时长}}
}
C#基础5.1:StringBuilder和StopWatch类相关推荐
- Stopwatch类学习
1.概述:给一条大MSDN的链接关于Stopwatch类最详细的教程 ,然后看着教程自己手动敲一边,加深映象,好记性不如烂键盘,哈哈,开个玩笑! 2.类位置:这个类在哪里,这个是重点,虽然C#IDE很 ...
- JAVASE基础模块十五(StringBuffer类)
JAVASE基础模块十五(StringBuffer类) public class Stbuffer { public static void main(String[] args) { //总共创建五 ...
- Java基础语法(九)——String类
文章目录 Java基础语法(九)--String类 一.定义方式 二.内存 三.字符串比较相等 四.字符串常量池 (1) 直接赋值 (2)采用构造方法 (3)intern 的使用 五.理解字符串不可变 ...
- Java 语言基础(异常机制和File类,IO流,多线程,网络编程,反射机制)
原文:Java 语言基础(异常机制和File类,IO流,多线程,网络编程,反射机制) 异常机制和File类 异常机制 基本概念 异常就是"不正常"的含义,在 Java 语言中主要指 ...
- JavaEE基础第9章Java常用类
第9章Java常用类 字面量的定义方式都是存在常量池中的,常量池中不会存储多个一样的字符串,在定义一个字符串的时候会先去常量池中找有没有存在的,有就将地址传过去,没有就新建. String字符串 概念 ...
- java写一个外网访问的接口_【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖、抽象和接口概念及区别(中篇)...
0 前言 初学JAVA时,总会对一些概念一知半解,相互混淆,不明其设计的用意,如类.对象.重载.封装.继承.多态.覆盖.抽象类.接口概念.为便于理解和巩固,本文将基于一个案例及其变形,展现各个概念的定 ...
- c# 中Stopwatch 类的运用
Stopwatch类只要提供一组方法和属性,可用于准确地测量运行时间.一般在项目中,如果需要计算出一段代码执行的时间,可以运用这个类.简单使用方法如下: stopWatch.Start(); // ...
- 作业1 OO基础1-3、 设计一个教师类Teacher(属于cn.net.sdkd包)
作业1 OO基础1-3. 设计一个教师类Teacher(属于cn.net.sdkd包) 要求: 1)属性有编号(int no).姓名(String name).年龄(int age).所属学院(Str ...
- StopWatch类
背景 有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观,如果想对执行的时间做进 ...
最新文章
- Error Correction and DeNovo Genome Assembly for the MinION Sequencing Reads mixing Illumina Short Re
- CAS存在的问题以及解决方案
- visa linux 串口 通信,使用visa进行串口通信
- new Date()时间
- 让学生员工上夜班加班,供应商“惹怒”苹果:暂停与其新业务合作
- 推荐一门免费提升开发效率的课程,非广告。
- 生意做到一定规模,老板想面面俱到,亲力亲为就不可能了
- IDEA之Git分支以及Stash使用
- java用循环图形显示_请问如何在使用循环绘制图形时使每个图形的显示之间有一定的延迟时间?...
- C# 匿名对象(匿名类型)、var、动态类型 dynamic
- android 中tools命名空间的全解
- 阿帕奇web服务器 java_WEB服务器搭建(Apache+Tomcat+eclipse)
- CentOS装docker
- WampServer 3.1.0 所需VC运行库下载及安装说明
- tps 、qps、bps、Bps的含义
- vuepress-theme-reco主题相关配置 + gitee pages 部署
- Python提取pcap文件中原始数据
- SAP-ABAP-多语系自动翻译功能
- python zipfile压缩的文件用shell命令解压_Python学习第177课——bzip2、zip方式压缩文件和解压文件...
- Unity 游戏存档框架实现