首页 > 编程语言 > 详细

java泛型总结2-1之核心概念

时间:2015-11-28 02:07:34      阅读:242      评论:0      收藏:0      [点我收藏+]
什么是泛型

泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法

?

泛型的优点

1、类型安全

2、前后兼容

3、泛化代码,代码可以更多的重复利用

4、性能较高,用GJ(泛型JAVA)编写的代码可以为java编译器和虚拟机带来更多的类型信息,这些信息对java程序做进一步优化提供条件。

?

泛型的缺点

1 由于类型擦除,泛型代码中不能提供类型在运行时的操作,比如new ?instanceOf 等?

2 不支持混型,C++通过模板和泛型支持混型,scala通过特质trait支持混型

3 泛型不是在java一开始就有的,是在java5.0加进去的,当把类型代码赋给旧代码时会造成类型信息丢失

?

泛型的工作原理:
在进入方法之前编译期类型检测, 进入方法中类型擦除T->Object,方法返回时插入转型代码,Object转换为具体类型

?

边界处的动作(泛型的工作原理的两头部分)
在传入值的进行额外的编译期的类型检测,在传出值的时候,插入转型代码进行转型 ? ?
记住"边界就是发生动作的地方". 就是方法进入时和和方法返回值的时候
?
泛型的协变\ 逆变 ?
协变:<? extends T> ?协变,协变后不能插入数据
逆变:<? super class> ?协变的相反过程,可以插入数据,但不能协变
<T> 普通泛型,集合不能协变,插入的数据支持协变

java泛型总结2-1之核心概念

原文:http://zhouchaofei2010.iteye.com/blog/2259880

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!