JavaSE 语法基础--- 泛型(基础知识问答)

Java泛型是JDK5引入的新特性,用于提供编译时类型检查,避免运行时类型转换异常。泛型允许在定义类、接口和方法时指定类型参数,增强代码的类型安全性。在类型擦除后,泛型信息在运行时消失,但编译时已进行检查。泛型类、接口和方法各有不同应用场景,如泛型类在创建对象时指定类型,泛型接口需在实现时明确类型,泛型方法则在方法签名中定义类型。限定通配符如? extends T和? super T分别限制了类型的上界和下界,前者用于获取数据,后者用于添加数据。

如果没有泛型?

java在推出泛型之前。程序员可以构建一个 元素类型为 Object 的集合,该集合可以存储任意的数据类型对象,而在使用该集合的过程中,需要程序员明确知道 每个元素的数据类型 ,否则很容易引发类型转换异常。

下面这个图就说明了如果没有泛型的话,我们可以存储任意类型的数据
在这里插入图片描述

缺点

取数据的时候,得强制类型转换,还得记得每一个数据的类型是什么,如果转换错误,还会发生类型转换异常的错误(编译时无错,运行时有错)

在这里插入图片描述

什么是泛型,介绍一下泛型?

Java中的泛型是 JDK5中引入的一个新特性,泛型本质就是类型参数化,也就是将所操作的数据类型指定为一个参数。

各个版本泛型的使用及变化说一下?

在 Java SE 1.5 之前没有泛型的情况的下只能通过对类型 Object 的引用来实现参数的任意化,其带来的缺点是要做显式强制类型转换,而这种强制转换编译期是不做检查的,容易把问题留到运行时

JDK 1.5 引入了泛型来允许强类型在编译时进行类型检查;

JDK 1.7 泛型实例化类型具备了自动推断能力,譬如 List list = new ArrayList(); 可以写成 List list = new ArrayList<>(); 了,JDK 具备自动推断能力。

泛型的意义?

1.存数据的时候,编译期间检查数据类型

2.取数据的时候,进行类型的自动转换<

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RAIN 7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值