当前位置: 代码迷 >> 综合 >> 内存管理(6)——string与StringBuilder(面试)
  详细解决方案

内存管理(6)——string与StringBuilder(面试)

热度:58   发布时间:2023-10-01 21:45:40.0

1、string是不变的,因此每次运算都会重新创建一个string对象。s=s+”abc”;

2、string s4=s1+s2+s3; //s1+s2产生"ab","ab"+s3产生"abc"。产生两个字符串

{    

            s=s+i.ToString();

}

3、大量的字符串相连会产生大量的中间字符串,字符串是对象,对象的产生是慢的,而且会占用大量的内存。所以要避免大量的字符串的连接操作。使用CLR Profiler进行分析

4、对象的创建是非常慢和消耗资源的,因此对于需要动态拼接字符串的场合(比如创建SQL语句)用StringBuilder来代替string,StringBuilder内部实现了字符串拼接不会有string的缺陷。

这个SB怎么用?

5、StringBuilder的常用方法:

  • Append:N多重载函数;
  • AppendLine:自动添加回车的Append
  • Replace:和String中的Replace差不多
  • ToString()转换为String,卸下重担,很多地方只认string.
  • Append链式编程的本质IntBuilder

6、案例:执行动态SQL。

7、有了StringBuilder为什么还要String?.Net的类还是认String,所以StringBuilder创建完了还是要ToString()转换成字符串才能给别人用。

  相关解决方案