其实早期有了解过何为装箱,何为拆箱。但是今天在看到C#泛型的时候,说到泛型可以减少拆箱和装箱,一时之间想不起这两者的具体概念了,于是又重新学习了一遍。
先了解以下几个概念:
装箱:将值类型转化为引用类型的过程。
拆箱:将引用类型转化为值类型的过程。
值类型:我们常见的值类型包含:int,float,long,char,bool,enum,struct。这些是统一继承自System.valueType。
引用类型:我们常见的引用类型包括:数组,用户定义的类,接口,委托,object,字符串。
为什么要避免装箱拆箱呢?
装箱其实就是把栈上的数据放到堆上去了。而拆箱就是把堆上的数据放在栈上。在拆箱和装箱的过程中,无可避免的多了数据转换,申请内存等。从而降低了性能。所以我们要避免装箱和拆箱。
初次接触后端,有不足之处还望指教。