笔记-范型

一.  范型:参数化类型

二. 使用范型好处:

1. 适用于多种数据类型执行相同代码

2. 提高java程序类型安全

3. 可以指定数据类型,消除强制类型转换,减少代码出错率

4. 编译时能检查类型安全,所有强转都是自动或隐式,提高代码重用率

三. 分类及说明

分类:范型类 ,范型接口,范型方法

说明:类和接口是在new对象或者实例的时候制定具体类型

           范型方法是独立的,不依赖于类/接口,在范型方法中可以使用通配符(?代表通配符)

           声明范型:<T>只有在尖括号里才能是申明范型

           范型类/接口限定:指范型必须实现具体的类型(范型限定可以有多个,使用&关联,类必须放在第一位,且只能有一个)

四. 使用范型注意:

1. 不能实例化类型变量

2. 静态域/方法里不能返回范型类型(此时程序首先执行,所以不知道具体类型,无法返回)

3. 范型不可以使用基本类型(基本类型不是对象)

4. 范型里不能用instanceof关键字

五. 使用说明:

1. 子类和父类分别作为范型的时候,他们之间没有继承关系

2. 范型可以扩展/继承其他范型类

六. 通配符(只能使用在方法里)

1. ? extends  类名 : 规定上限

2. ? super 类名 : 规定下限

七. 虚拟机中如何实现范型(原理)

使用范型擦除和伪范型 - 编译后就不存在范型

1. 范型擦除:编译后擦除范型,最后使用的都是原生类型,变成object进行处理

2. 伪范型:当使用T extends 类& 接口...,此时默认会使用第一个对象作为处理类型,如果需要使用后面对象则会自动强转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值