12.13 C#基础

文章讨论了String和StringBuilder在字符串处理中的优势,指出String由于不可变性常用于API和读取,而StringBuilder在频繁修改时更节省内存,现代编译器可能已优化+操作。StringBuilder非线程同步,适合拼接,但一般情况下String足够使用。
摘要由CSDN通过智能技术生成

一、String和StringBuilder比有什么优势?

如果是处理字符串的话,用string中的方法每次都需要创建一个新的字符串对象并且分配新的内存地址,而 stringBuilder 是在原来的内存里对字符串进行修改,所以在字符串处理方面还是建议用stringBuilder这样比较节约内存。但是 string 类的方法和功能仍然还是比 stringBuilder 类要强。

string类由于具有不可变性(即对一个 string 对象进行任何更改时,其实都是创建另外一个 string 类的对象),所以当需要频繁的对一个 string 类对象进行更改的时候,建议使用StringBuilder 类,StringBuilder 类的原理是首先在内存中开辟一定大小的内存空间,当对此 StringBuilder 类对象进行更改时, 如果内存空间大小不够, 会对此内存空间进行扩充,而不是重新创建一个对象,这样如果对一个字符串对象进行频繁操作的时候,不会造成过多的内存浪费,其实本质上并没有很大区别,都是用来存储和操作字符串的,唯一的区别就在于性能上。

String主要用于公共 API,通用性好、用途广泛、读取性能高、占用内存小。

StringBuilder主要用于拼接 String,修改性能好。

不过现在的编译器已经把String的 + 操作优化成 StringBuilder 了, 所以一般用String 就可以了

String是不可变的,所以天然线程同步。

StringBuilder可变,非线程同步。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值