1.垃圾回收器
GC工作消耗大量cpu资源。
2.复习值类型、引用类型,值参数、引用参数、输出参数
值类型、引用类型:值类型是一种一般存在栈中,占用资源较少的数据类型。引用类型是一种一般存在堆中,占用资源较多的数据类型。(相对于内存中的数据)
值参数、引用参数、输出参数:值参数一般是指方法中的参数,这个参数可以是值类型和引用类型。引用参数一般是用于在方法中改变一些值类型参数可以与引用类型一样在方法内实现值的改变。输出参数一般是用法与引用参数类似,不过它所传入的值可以是没有赋值的参数。
值参数没有限定关键词,引用参数和输出参数分别为ref、out,在传递参数即调用方法的时候也需要使用限定关键词。
3.拆装箱
装箱:
上图对应代码:
int a = 1;
object b = a;
此过程为装箱,比较消耗性能。
拆箱:
double a = 1;
object b = a;
float c = (float)b;
上面的代码中,当我们编码时不会报错,但是我们运行是会异常。如下:
我们发现在float c=(float)b;这段代码出错,上面的异常大概的意思就是不能将object实例实现double类型到float类型的转换。
而从object类型转到一个double类型的过程我们称为拆箱。
拆箱我们需要注意的是必须类型相同,从什么类型装的箱,拆的箱就得是什么类型。
通过上面装箱和拆箱,我们知道尽量避免类型向object类型的转换。
那么,当我们在创建方法的时候,形参object类型,实参传递值类型,就会装箱。
而这我们可以通过重载、泛型来避免。(泛型我们会在后面说到)