20230710 引用参数,输出参数 垃圾回收 装箱 字符串池 可变字符串 字符串常用方法

发布时间 2023-07-14 15:05:57作者: 邓博文

值参数(传递信息)

(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类型,也可以替换类型。并且都有一个默认值,并且依次递增。

  • 简单枚举
  • 标志枚举多选:选择多个枚举时,用“|”按位或 相当于