泛型
1 引入泛型:延迟声明
2 如何声明和使用泛型
3 泛型的好处和原理
4 泛型类、泛型方法、泛型接口、泛型委托
5 泛型约束
6 协变 逆变(选修)
7 泛型缓存(选修)
List<string>就是泛型,为什么要有泛型?
List<string>是一个集合,可能是一组int 也可能是一组string
泛型就是用一个东西来满足多种不同类型的需求的
1 任何父类出现的地方,都可以用子类来代替
2 object是一切类型的父类
object类型参数有2个问题:
1 装箱拆箱,性能损耗
传入一个int值(栈)
object又在堆里面,如果把int传递进来,就会把值从栈里面copy到堆里
使用的时候,又需要用对象值,又会copy到栈(拆箱)
2 类型安全问题,可能会有,因为传递的对象是没有限制的