1、字符串的操作
来源:互联网 发布:网络安全法的特点 编辑:程序博客网 时间:2024/06/06 20:08
对于CLR来说,string对象是很特殊,一旦它被赋值后将无法改变。在运行时调用System.String类中的任何运算,都会在内存中创建一个新的字符串对象,这也意味着要为该对象分配新的内存空间。
原则:
1、确保尽量少的装箱;
2、避免分配额外的内存空间;
装箱的性能损耗:
1、首先,会为值类型在托管堆中分配内存。除了值类型本身所分配的内存外,内存总量还要加上类型对象指针和同步块索引所占用的内存;
2、将值类型的值赋值到新分配的堆内存中;
3、返回已经成为引用类型的对象的地址。
注意:在使用其他值引用类型到字符串的转换并完成拼接时,应避免使用操作符“+”来完成,而应该使用值引用类型提供的ToString方法。前者调用String::Contact(object,object),该方法存在一个到object类型的装箱过程;而后者调用String::Contact(String,String)方法完成拼接。
当字符串拼接次数过多时,建议使用StringBuilder类来操作字符串,其效率源自于非托管的方式分配内存。
0 0
- 字符串的操作1
- 1、字符串的操作
- OC字符串的操作1
- 字符串以及字符串的操作
- 面试题------字符串操作1(字符串的旋转)
- Swift3.1 字符串的操作(补充)
- 字符串的数字部分加1操作
- python拾遗-1 字符串的属性操作
- Oracle 的字符串操作
- Java的字符串操作
- Java的字符串操作
- 字符串的常用操作
- 字符串的某些操作
- C#字符串的操作
- 字符串操作的实现
- 字符串的操作
- 字符串的操作
- 字符串的操作
- 复杂可变数组的排序---(数组中存的是对象)---mutablearray
- Could not build module 'UIKit'问题
- hdu3585 maximum shortest distance
- mongodb学习笔记
- 自定义Dialog时,会遇到dialog wrap_content,这个时候需要手动设置Dialog大小
- 1、字符串的操作
- debian 发行代号
- ssh远程登陆命令
- WPF数据绑定学习
- 全面复习之SQL(8)-oracle存储过程
- Codeforces Round #246 (Div. 2)(B)数学
- unable to start the virtual device the virtual device got no ip address一个解决方法
- 使用MongoDB Shell
- PropertyAnimation属性动画资源 ArgbEvaluator使用