C# String StringBuilder 区别
这篇博客,纯参考。主要为了自己也复习一遍,过一下其中的原理。
string aTest = "abc";//分配固定的内存大小
aTest += "ddd"; //销毁原先的数据再来分配,消耗大
StringBuilder sb = new StringBuilder(20);//指定分配大小,指定分配内存大小,性能就会得到提升。
//如果超过指定大小系统,系统会倍增,自动增加的,40,60,80
sb.Append("aaa");//分配到堆区
sb.Append("ddd");//不会被销毁,直接加到后面
StringBuilder 并不会重新创建一个string对象,如果stringbuilder没有预先定义长度,默认长度为16,
大于16而小于32,时,会自动重新分配内存为32,即16的倍数。
使用StringBuilder需要预先知道长度,避免浪费空间。
总结:
string声明之后内存大小是不可以修改的,但是StringBuilder可以自由扩展大小
string 分配到栈区,stringbuilder分配到堆区。
对字符串修改比较频繁的情况使用StringBuilder。
原文参考 :http://www.cnblogs.com/qq610540622/p/4621405.html
C# String StringBuilder 区别的更多相关文章
- String,StringBuilder区别,一个是常量,一个是可变量
String str="这就是爱的呼唤,这就是爱的奉献!!"; //这个str是不可变的字符串序列,要变会生成新的字符串,原字符串不变,是常量 StringBuilder sBui ...
- java基础知识回顾之---java StringBuffer,Stringbuilder与String的区别
public class StringBuilderTest { /** * StringBuffer和Stringbuilder :使用与内容可以被修改的字符串 * 与String的区别:Strin ...
- String StringBuilder StringBuffer区别
String StringBuilder StringBuffer String类是final类,不可以被继承,且它的成员方法也是final方法,当一个字符串对象进行操作操作时,任何的改变不会影响到这 ...
- String、StringBuffer、StringBuilder区别
String.StringBuffer.StringBuilder区别 StringBuffer.StringBuilder和String一样,也用来代表字符串.String类是不可变类,任何对Str ...
- String、StringBuffer、StringBuilder区别并验证
© 版权声明:本文为博主原创文章,转载请注明出处 String.StringBuffer.StringBuilder的区别 1.String是一个常量,其对象一旦创建完毕就无法改变,当使用“+”拼接字 ...
- ArrayList和Vector的区别?HashMap和HashTable的区别?StringBuilder、StringBuffer和String的区别?
ArrayList和Vector的区别?从两个方面 1.同步性:ArrayList是线程不安全的,是非同步的:Vector是线程安全的,是同步的.(Java中线程的同步也就满足了安全性) 2.数值增长 ...
- String、StringBuffer和StringBuilder区别
String.StringBuffer和StringBuilder区别 1.长度是否可变 String 是被 final 修饰的,他的长度是不可变的,就算调用 String 的concat 方法,那也 ...
- 简单的理解 StringBuffer/StringBuilder/String 的区别
StringBuffer/StringBuilder/String 的区别 这个三类之间主要的区别:运行速度,线程安全两个方面. 速度方面(快到慢): StringBuilder > Strin ...
- 8.4 StringBuilder的介绍及用法(String 和StringBuilder区别)
* StringBuilder:是一个可变的字符串.字符串缓冲区类.** String和StringBuilder的区别:* String的内容是固定的.(方法区的内容)* StringBuilder ...
随机推荐
- 【读书笔记】【深入理解ES6】#11-Promise与异步编程
异步编程的背景知识 JavaScript 引擎是基于单线程(Single-threaded)实际循环的概念构建的,同一时刻只允许一个代码块在执行. 所以需要跟踪即将运行的代码,那些代码被放在一个任务队 ...
- [转]正则匹配时对象必须为string or bytes-like object
逛segmentfault时碰到这个问题,发现早就在stackoverflow上被解决了. 报错:Expected string or bytes-like object 只需将传递的对象转成字符串就 ...
- \(?0\d{2}[) -]?\d{8}正则表达式的解释
正则表达式30分钟出现了这样一个正则表达式:(?0\d{2}[) -]?\d{8} "("和")"也是元字符,所以需要转义. ?匹配零或一次 (? 表示 出现( ...
- 使用mysql悲观锁解决并发问题
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科): 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持 ...
- iOS 字符串 MD5
iOS 字符串 MD5 Objective-C 实现 需要引入头文件 #import <CommonCrypto/CommonCrypto.h> 这里用方法实现 + (nullable N ...
- 【转】Nginx SSL_PROTOCOL_ERROR 问题
转自:https://maoxian.de/2017/12/1471.html 这两天在检查一台 Nginx 配置的时候,遇到了一个极端诡异的问题.一段很通用的配置,配在这个服务器上,就会 100% ...
- zoj 3228:Searching the String
Description Little jay really hates to deal with string. But moondy likes it very much, and she's so ...
- UVA 10881 - Piotr's Ants【模拟+思维】
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 部署Asp.net Core 项目发生502.5 或者500 没有其他提示信息
最近将公司原来.NetCore 1.6的项目升级到.net Core 2.0首先发生 502.5的错误,包括IIS日志,Windows应用程序日志都没有记录问题始终解决不了,首先看看官网给出的解决方案 ...
- Java高并发秒杀系统API之SSM框架集成swagger与AdminLTE
初衷与整理描述 Java高并发秒杀系统API是来源于网上教程的一个Java项目,也是我接触Java的第一个项目.本来是一枚c#码农,公司计划部分业务转java,于是我利用业务时间自学Java才有了本文 ...