java面试-泛型
2024-10-08 05:13:31
1、什么是泛型?泛型有什么作用?
泛型就是参数化类型,也就是所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
在泛型出现之前,集合中添加对象只能是object类型的,在取出使用时,必须进行强制类型转换,容易引发ClassCastException。泛型提供了编译器的类型安全,确保你只能把正确类型的对象放入集合中。
2、java的泛型是如何工作的?什么是类型擦除?
泛型是通过类型擦除来实现的,编译器在编译时擦除了所有类型相关的信息,所以在运行时不存在任何类型相关的信息。例如List在运行时仅用一个List来表示。这样做的目的是确保能和java5之前的版本开发二进制类库进行兼容。你无法在运行时访问到类型参数,因为编译器已经把泛型类型转换成了原始类型。
3、什么是泛型中的限定通配符和非限定通配符?
限定通配符是对类型进行了限制。有两种限定通配符,一种是<? extends T>,它通过确保类型必须是T的子类来限定类型的上限。另一种是<? super T>,它通过确保类型必须是T的父类来限定类型的下限。泛型类型必须用限定内的类型来进行初始化,否则会导致编译错误。
非限定通配符用<?>来表示,泛型类型可以用任何类型来进行初始化。
最新文章
- ABAP 订单-交货单-发货过账自动完成 案例
- Mysql数据库的一些命令_LInux
- 多个Jar包的合并操作
- Centos6.4下Yum命令安装Mysql数据库及配置
- PE文件结构详解(二)可执行文件头
- Ubuntu 10.04启动进入命令行模式
- 很少人知道的office专用卸载工具
- 两个容易被忽略的mysql知识
- php:sprintf
- 消息队列中间件 RocketMQ 源码分析 —— Message 存储
- the method of validate slow
- 堡垒机之paramiko模块
- [转]smail语法 详解
- php获取脚本执行的参数
- Exp2 后门原理与实践 20164303 景圣
- js 上下滚动加停顿效果,js 跑马灯加停顿效果
- 复杂xml格式报文和实体类之间的转化
- Golang入门教程(十二)安装注意事项
- 通过动态SQL语句创建游标
- Python3学习之路~2.10 修改haproxy配置文件
热门文章
- ADT上跑java application
- gcc需找头文件路径
- @codechef - SONATR@ Sonya and Tree
- @loj - 3039@ 「JOISC 2019 Day4」蛋糕拼接 3
- Helm V3 新版本发布
- 如何把thinkphp 的url改为.html
- poj 3334 Connected Gheeves (Geometry + BInary Search)
- div+css布局的好处
- 2014年NOIP普及组复赛题解
- 2019-1-29-win10-uwp-使用-Microsoft.Graph-发送邮件