20230710 引用参数,输出参数 垃圾回收 装箱 字符串池 可变字符串 字符串常用方法 枚举
值参数(传递信息)
(int a,int[] a)..
引用参数(改变数据)
按引用传递--传递实参变量的内存地址。
private static void xxx(ref int a)
{
a=0;
//实参中传过来的变量也会发生修改。
}
输出参数(返回结果)
按引用传递--传递实参变量的内存地址。
private static void xxx(out int a){
a=0;
//实参中传过来的变量也会发生修改。
}
区别:
- 输出参数必须对形参a进行处理,引用参数可以不处理。
- 输出参数在进方法前可以不进行赋值。
parse 与tryparse
parse就是转值
tryparse返回两个值(一个转换值,out int result)
垃圾回收
GC CLR中一种。对堆中的的内存进行判定,若该内存未被使用则进行回收。
装箱操作 消耗性能
值类型转换成object类型,要在堆中开辟空间,共三个,一个值一个同步块索引一个类型对象指针;
尽力避免装箱操作(重载、泛型
拆箱操作 消耗性能比装箱消耗少
从堆里把数据复制到值类型中。拆箱前要判断是否为同类型。
字符串池
引用的同一个字符
可变字符串stringbuilder(可在原有空间修改字符避免产生垃圾)频繁操作字符串
10的值要尽量准确,避免产生垃圾;
若是使用string类型,每次进行拼接操作,会产生垃圾。
string builder是开辟一个更大的空间(默认值)。当要装下超出指定空间的字符时,会指引到一个更大的空间、空间里包含了之前存在的字符;
string这种都是开辟一个固定的空间,所以当要赋值新数据时,都只能重新在堆中开辟新空间。
常用方法
- builder.replace替换字符
- builder.insect 插入字符
- builder.remove 移除字符
- builder.append 添加字符
字符串常用方法
枚举
简化代码,默认为int类型,也可以替换类型。并且都有一个默认值,并且依次递增。
- 简单枚举
- 标志枚举多选:选择多个枚举时,用“|”按位或 相当于