摘要: 原来用到的集合,栈,ArrayList之类的集合,会遇到你用的是什么类型的这个问题,从oo的来看,是存为根类型,也就是object。它可以支持各种各样的操作-通用化。在高级语言中,譬如类,他们都是托管类型,也会有轻型的值类型,譬如 int byte,当然也可以使用自己 struct 结构类型。在添加到集合时,他们都会面临转到object时的装箱类型,需要复制到数据然后包装到托管堆中。这会严重的影响性能。还有就是涉及到了安全问题,譬如可以在ArrayList中可以塞入各种类型,但是出来的时候必须要小心,它需要我们将其转换为原类型,然后才能调用它自己的方法。 有了泛型之后就会方便很多,所谓泛型,就是通过参数化类型来实现在同一份代码上操作多种数据类型,好像是“模板”,它是一种编程范式,C++ java中好像都这么个概念,它利用“参数化类型”将类型抽象化,泛型其实就是一种抽象类型-即不完整的类型,只有具体化了后才能new出一个对象。优点:达到了类型的安全,复用,更高效—不需要boxing,unboxing,更清晰的更严格的约束—在编译时检查。这是一种“类型“的多态,而virt 阅读全文
posted @ 2007-02-05 19:15 微微一记 阅读(552) 评论(0) 推荐(0) 编辑