泛型的实现原理

一、泛型是什么?

Java泛型(generics)是JDK 5中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许我们在编译时检测到非法的类型数据结构;

泛型的本质就是参数化类型,也就是所操作的数据类型被指定为一个参数;

二、泛型的好处

1、类型安全。泛型的主要目的就是提高Java程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设只能我们自己记或者代码注释;

2、消除强制类型转换。泛型一个附带好处是,消除代码中许多强制类型的转换。减少代码出错率,更好阅读;

三、实现原理

Java中的泛型基本上都是在编译器这个层次实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器编译的时候去掉。这个过程就称为类型擦除。

如在代码中定义的List和List等类型,在编译后都会变成List。JVM看到的只是List,而由泛型附加的类型信息对JVM来说是不可见的。Java编译器会在编译时尽可能地发现可能出错的地方,但是仍然无法避免在运行时出现类型转换异常的情况。类型擦除也是Java的泛型实现方法与C++模板机制实现方式之间的重要区别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值