1、什么是泛型?泛型有什么作用?

  泛型就是参数化类型,也就是所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
  在泛型出现之前,集合中添加对象只能是object类型的,在取出使用时,必须进行强制类型转换,容易引发ClassCastException。泛型提供了编译器的类型安全,确保你只能把正确类型的对象放入集合中。

2、java的泛型是如何工作的?什么是类型擦除?

  泛型是通过类型擦除来实现的,编译器在编译时擦除了所有类型相关的信息,所以在运行时不存在任何类型相关的信息。例如List在运行时仅用一个List来表示。这样做的目的是确保能和java5之前的版本开发二进制类库进行兼容。你无法在运行时访问到类型参数,因为编译器已经把泛型类型转换成了原始类型。

3、什么是泛型中的限定通配符和非限定通配符?

  限定通配符是对类型进行了限制。有两种限定通配符,一种是<? extends T>,它通过确保类型必须是T的子类来限定类型的上限。另一种是<? super T>,它通过确保类型必须是T的父类来限定类型的下限。泛型类型必须用限定内的类型来进行初始化,否则会导致编译错误。
  非限定通配符用<?>来表示,泛型类型可以用任何类型来进行初始化。

最新文章

  1. ABAP 订单-交货单-发货过账自动完成 案例
  2. Mysql数据库的一些命令_LInux
  3. 多个Jar包的合并操作
  4. Centos6.4下Yum命令安装Mysql数据库及配置
  5. PE文件结构详解(二)可执行文件头
  6. Ubuntu 10.04启动进入命令行模式
  7. 很少人知道的office专用卸载工具
  8. 两个容易被忽略的mysql知识
  9. php:sprintf
  10. 消息队列中间件 RocketMQ 源码分析 —— Message 存储
  11. the method of validate slow
  12. 堡垒机之paramiko模块
  13. [转]smail语法 详解
  14. php获取脚本执行的参数
  15. Exp2 后门原理与实践 20164303 景圣
  16. js 上下滚动加停顿效果,js 跑马灯加停顿效果
  17. 复杂xml格式报文和实体类之间的转化
  18. Golang入门教程(十二)安装注意事项
  19. 通过动态SQL语句创建游标
  20. Python3学习之路~2.10 修改haproxy配置文件

热门文章

  1. ADT上跑java application
  2. gcc需找头文件路径
  3. @codechef - SONATR@ Sonya and Tree
  4. @loj - 3039@ 「JOISC 2019 Day4」蛋糕拼接 3
  5. Helm V3 新版本发布
  6. 如何把thinkphp 的url改为.html
  7. poj 3334 Connected Gheeves (Geometry + BInary Search)
  8. div+css布局的好处
  9. 2014年NOIP普及组复赛题解
  10. 2019-1-29-win10-uwp-使用-Microsoft.Graph-发送邮件