列表和数组的区别

1.数组是协变的(convariant),如果Sub是Super的子类型,那么数组类型Sub[]就是Super[]的子类型。

泛型确实不可变的,List< Sub >不是List< Super >的子类型。

2、数组是具体化的(reified),因此数组在运行时才知道并检查它们的元素类型约束。

泛型则是通过擦除(erasure)来实现,因此泛型只在编译时强化它们的类型信息,并在运行时丢弃(或者擦除)它们的元素类型约束。擦除就是使泛型可以与没有使用泛型的代码随意进行互用。

Object[] objectArray = new Long[1];
objectArray[0] = "hello world";
//Throws java.lang.ArrayStoreException  //Won't compile! 不被允许:Type mismatch: cannot convert from LinkedList<Long> to List<Object>
List<Object> list = new LinkedList<Long>();  

总结:对于运行时错误和编译期错误,我们当然选择编译器异常,通常遇到想要创建一个泛型数组的问题是,优先选择List< T >,而不是E< T >。
这样可能会损失一点性能和简洁性,但是换来的是更高的类型安全性和互用性。

Effective Java之列表由于数组(二十五)相关推荐

  1. java常见面试考点(二十五):CAS是什么

    java常见面试考点 往期文章推荐:   java常见面试考点(二十):Elasticsearch 和 solr 的区别   java常见面试考点(二十一):单点登录   java常见面试考点(二十二 ...

  2. Effective Java之消除受检警告(二十四)

    前记:在我编程过程中,经常会看到代码下面有一条横线,但是自己并没有注意警告的具体内容,一来觉得自己写的程序没有问题,二来,感觉改会很麻烦,这是不好的习惯,如果有这种编程习惯的,都要改正一下啊- 1.在 ...

  3. Effective Java之不要忽略异常(六十五)

    任何一个被抛出的异常都是API设计者有意为之的,其中蕴含了特定的含义,所以千万不能忽略它们! try{ ...... }catch (Exception e){ } 这样的代码并不十分罕见,这有可能是 ...

  4. java从入门到精通二十四(三层架构完成增删改查)

    java从入门到精通二十四(三层架构完成增删改查) 前言 环境准备 创建web项目结构 导入依赖和配置文件 创建层次模型 实现查询 实现添加 实现修改 完成删除 做一个用户登录验证 会话技术 cook ...

  5. JAVA面经复习(二十六)面试难度:☆☆☆☆

    JAVA面经复习(二十六)面试难度:☆☆☆☆ 面试难度:☆☆☆☆ 推荐指数:☆☆☆☆☆ 推荐原因:总体来说本篇面经难度不高,且基本都是基础知识,不涉及复杂的分布式应用的工具,适合新手复习. 声明:答案 ...

  6. 打怪升级之小白的大数据之旅(二十五)<Java面向对象进阶之IO流三 其他常见流>

    打怪升级之小白的大数据之旅(二十五) Java面向对象进阶之IO流三 其他常见流 上次回顾 上一章,我们学习了常用的字节流与字符流,本章,我会将其他的一些常见的流进行分享,IO流很多,我介绍不完,就挑 ...

  7. Java游戏服务器开发之二十--xml配置文件

    Java游戏服务器开发之二十--xml配置文件     游戏中使用的配置文件很多     像游戏中的关卡,英雄等级,装备之类都是使用配置文件(xml等)     比如有一个装备,配置表中有一条记录,数 ...

  8. java 数组 列表_用Java将列表转换为数组

    用Java将列表转换为数组 const $source = document.querySelector('#source'); const $result = document.querySelec ...

  9. 【零基础学Java】—继承父类并实现多个接口(二十五)

    [零基础学Java]-继承父类并实现多个接口(二十五) 一.使用接口的注意事项 1️⃣接口是没有静态代码块或者构造方法的 2️⃣一个类的直接父类是唯一的,但是一个类可以同时实现多个接口 3️⃣如果实现 ...

最新文章

  1. 我的世界 java开发者_我的世界Java版开发者们畅聊水域更新
  2. Tomcat默认访问页面
  3. 光流 | HS光流算法与LK光流算法(基于OpenCV)
  4. WebApi项目创建CURD
  5. 海康存储携手英特尔发布AI企业私有云
  6. 知道无人驾驶的网络安全有多重要吗?英国政府都决定插手开发了
  7. 华中农业大学第五届程序设计大赛 (7/12)
  8. iZotope RX 9 Advanced for Mac - 高级音频修复软件
  9. 在线class文件反编译java
  10. 10054: An existing connection was forcibly closed by the remote host
  11. 电脑ping不通的原因
  12. 【技术贴】Pdf压缩利器--PDFshrink使用教程
  13. 软件需求分析的五个步骤_建立满足用户需求的云的5个步骤
  14. azw3电子书如何用安卓手机打开?
  15. Alice和Bob的故事---非对称加密
  16. 【读书笔记】《曾国藩的正面与侧面(三)》
  17. vector内存机制和性能分析
  18. 【rustdesk】windows安装vcpkg及配置, rustdesk 客户端依赖库安装
  19. 百度识图API教程二:EasyDL物体检测的使用
  20. hydra暴力破解ssh密码

热门文章

  1. masm中常用的伪指令
  2. cocos2d-x游戏实例(25)-简易动作游戏(3)
  3. 监听以太网(一) Packet32包说明
  4. Raw Socket编程
  5. DDD 领域驱动设计:贫血模型、充血模型的深入解读
  6. Python的继承多态
  7. 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
  8. LiveVideoStackCon 一次全新的尝试,错过了就是一辈子
  9. 聚焦新基建,腾讯云十余项自研技术应用集中亮相
  10. json-c库使用总结