首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

深入【Java】底层细节知识点(2)java泛型

深入【Java】底层细节知识点(2)java泛型

java

  • 加入泛型之前:如果我们有如下需求:一个StringArr,你只想放string,但你并不能阻止其他类型数据放入。为了通用性,这样的数组一般都是Object。当我们获取里面的值的时候,就得强制转换,这就是它的缺点。
  • 加入泛型之后:例如:ArrayList<String> stringValues=new ArrayList<String>();这样,就指定了具体的类型,添加一些数据的时候,如果不符合初定的类型,就会报错,安全性提高!再有就是指定了具体的类型,提高了代码的质量,可读性提高!
  • 实现原理:

    如上,两者的类型分明不同,输出的结果却是true,这是因为,泛型它不会影响java虚拟机生成的汇编代码,在编译阶段,虚拟机就会把泛型的类型擦除,还原成没有泛型的代码,顶多编译速度稍微慢一些,执行速度是完全没有什么区别的。这就是为什么,Java的泛型被称为“伪泛型”的原因
    注意点:
    • 泛型变量不允许是基本数据类型,只能是他们的包装类
    • 静态方法和静态变量不可以使用泛型类所声明的泛型类型参数
返回列表