博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础知识(JAVA之泛型)
阅读量:4708 次
发布时间:2019-06-10

本文共 994 字,大约阅读时间需要 3 分钟。

 

 

 

什么是泛型?为什么要使用泛型?

泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。

泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

 

泛型是什么:泛型是JDK1.5之后出现的新特性。

使用泛型的目的:为了提高安全机制。(JDK升级几乎只为了三个目的:提高效率、简化书写、提高安全性)
使用泛型的好处:
1.将运行时期的问题ClasscastException转到了编译时期。
2.避免了强制转换的麻烦。
解惑:<>和E
<>是什么?
就像方法中使用()来界定参数范围,泛型使用<>界定要传入的参数类型。
<>什么时候用?
当操作的引用数据类型不确定的时候使用。
E是什么?
E代表一个参数,为Element的简写,不使用小写的原因就是E代表的参数类型只限于引用型数据类型,而不包括基本数据类型。
3.泛型的擦除和补偿。
擦除:虽然程序员在写代码的时候使用了泛型,但是在JAVA编译器生成Class文件的时候,会将泛型去掉,生成的Class文件中并没有泛型。这称为泛型的擦除。
补偿:擦除的目的是为了兼容低版本jre,但是泛型技术中不使用强制转换却没有办法使得低版本支持,所以编译器略作调整,它将自动获取对象类型(使用getClass方法)并完成隐式的强转动作。这就是泛型的补偿。
4.泛型类型所能使用的方法。
一旦使用了泛型,则变量类型变得不确定,它将不能使用某个类的具体方法,但是能够使用Object类的所有方法。

---------------------
作者:VieLei
来源:CSDN
原文:https://blog.csdn.net/s10461/article/details/53941091
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/sxjblogs/p/9868196.html

你可能感兴趣的文章
记点笔记
查看>>
网络编程——第三篇 HTTP应用编程(下)
查看>>
进程管理(Process类)
查看>>
Android进阶篇-访问Https链接
查看>>
vi/vim编辑器
查看>>
黑马程序员——创建线程的两种方式
查看>>
Webservice之axis
查看>>
运输计划 洛谷P2680
查看>>
用 C# 计算 与 java 一致的unix时间戳 (长时间整形 如:1476956079961)
查看>>
找回任务栏得“显示桌面"图标
查看>>
mondrian 4.7 源码部署
查看>>
C#方法重载(overload)方法重写(override)隐藏(new)
查看>>
读书笔记1-编写可维护javascript代码
查看>>
Redis系列(三)—— 订阅/发布
查看>>
TDD:什么是桩(stub)和模拟(mock)?
查看>>
mysql_ my.cnf优化,安全配置和日志
查看>>
用了锚的时候,有的层被覆盖了。
查看>>
改变navigationbar的底部线条颜色
查看>>
算法入门经典第六章 例题6-9 天平
查看>>
extern的用法
查看>>