课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,java编程开发对于大多数的程序员来说都是非常熟悉的一种编程开发语言了。今天我们就一起来了解一下,关于java泛型都有哪些基础知识。
什么是泛型?
泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,也就是说所操作的数据类型被指定为一个参数,在用到的时候在指定具体的类型。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口和泛型方法。
为什么使用泛型?
泛型使类型(类和接口)在定义类、接口和方法时成为参数,好处在于:
强化类型安全,由于泛型在编译期进行类型检查,从而保证类型安全,减少运行期的类型转换异常。
提高代码复用,泛型能减少重复逻辑,编写更简洁的代码。
类型依赖关系更加明确,接口定义更加优好,增强了代码和文档的易读性。
泛型类
在类的申明时指定参数,即构成了泛型类。泛型类的类型参数部分可以有一个或多个类型参数,它们之间用逗号分隔。这些类称为参数化类或参数化类型,因为它们接受一个或多个参数。
在使用泛型的时候如果传入泛型实参,则会根据传入的泛型实参做相应的限制,此时泛型才会起到本应起到的限制作用,但是,泛型的类型参数只能是类类型,不能是简单类型。如果不传入泛型类型实参的话,在泛型类中使用泛型的方法或成员变量定义的类型可以为任何的类型。换句话说,泛型类可以看成普通类的工厂。
泛型方法
在java中,泛型类的定义非常简单,但是泛型方法就比较复杂了。
尤其是我们见到的大多数泛型类中的成员方法也都使用了泛型,有的甚至泛型类中也包含着泛型方法,这样在初学者中非常容易将泛型方法理解错了。
泛型类,是在实例化类的时候指明泛型的具体类型;泛型方法,是在调用方法的时候指明泛型的具体类型 。
类型擦除
Java编译器应用类型擦除。 类型擦除是指编译器使用实际的类或桥接方法替换泛型参数的过程。 在类型擦除中,编译器确保不会创建额外的类,并且没有运行时开销。
Java编译器编译泛型的步骤:
检查泛型的类型 ,获得目标类型
擦除类型变量,并替换为限定类型(T为无限定的类型变量,用Object替换)
调用相关函数,并将结果强制转换为目标类型。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!