标题:
深入【Java】底层细节知识点(2)java泛型
[打印本页]
作者:
look_w
时间:
2018-12-15 13:05
标题:
深入【Java】底层细节知识点(2)java泛型
三
、
j
a
v
a
泛
型
加入泛型之前:
如果我们有如下需求:一个StringArr,你只想放string,但你并
不能阻止其他类型数据放入
。为了通用性,这样的数组一般都是Object。当我们获取里面的值的时候,就得
强制转换
,这就是它的缺点。
加入泛型之后:
例如:ArrayList<String> stringValues=new ArrayList<String>();这样,就指定了具体的类型,添加一些数据的时候,如果不符合初定的类型,就会报错,
安全性提高!
再有就是指定了具体的类型,
提高了代码的质量,可读性提高!
实现原理:
如上,两者的类型分明不同,输出的结果却是
true
,这是因为,
泛型它不会影响java虚拟机生成的汇编代码,在编译阶段,虚拟机就会把泛型的类型擦除,还原成没有泛型的代码,顶多编译速度稍微慢一些,执行速度是完全没有什么区别的。
这就是为什么,Java的泛型被称为“伪泛型”的原因
注意点:
泛型变量不允许是基本数据类型,只能是他们的包装类
静态方法和静态变量不可以使用泛型类所声明的泛型类型参数
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0