Effective Java之列表由于数组(二十五)
列表和数组的区别
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之列表由于数组(二十五)相关推荐
- java常见面试考点(二十五):CAS是什么
java常见面试考点 往期文章推荐: java常见面试考点(二十):Elasticsearch 和 solr 的区别 java常见面试考点(二十一):单点登录 java常见面试考点(二十二 ...
- Effective Java之消除受检警告(二十四)
前记:在我编程过程中,经常会看到代码下面有一条横线,但是自己并没有注意警告的具体内容,一来觉得自己写的程序没有问题,二来,感觉改会很麻烦,这是不好的习惯,如果有这种编程习惯的,都要改正一下啊- 1.在 ...
- Effective Java之不要忽略异常(六十五)
任何一个被抛出的异常都是API设计者有意为之的,其中蕴含了特定的含义,所以千万不能忽略它们! try{ ...... }catch (Exception e){ } 这样的代码并不十分罕见,这有可能是 ...
- java从入门到精通二十四(三层架构完成增删改查)
java从入门到精通二十四(三层架构完成增删改查) 前言 环境准备 创建web项目结构 导入依赖和配置文件 创建层次模型 实现查询 实现添加 实现修改 完成删除 做一个用户登录验证 会话技术 cook ...
- JAVA面经复习(二十六)面试难度:☆☆☆☆
JAVA面经复习(二十六)面试难度:☆☆☆☆ 面试难度:☆☆☆☆ 推荐指数:☆☆☆☆☆ 推荐原因:总体来说本篇面经难度不高,且基本都是基础知识,不涉及复杂的分布式应用的工具,适合新手复习. 声明:答案 ...
- 打怪升级之小白的大数据之旅(二十五)<Java面向对象进阶之IO流三 其他常见流>
打怪升级之小白的大数据之旅(二十五) Java面向对象进阶之IO流三 其他常见流 上次回顾 上一章,我们学习了常用的字节流与字符流,本章,我会将其他的一些常见的流进行分享,IO流很多,我介绍不完,就挑 ...
- Java游戏服务器开发之二十--xml配置文件
Java游戏服务器开发之二十--xml配置文件 游戏中使用的配置文件很多 像游戏中的关卡,英雄等级,装备之类都是使用配置文件(xml等) 比如有一个装备,配置表中有一条记录,数 ...
- java 数组 列表_用Java将列表转换为数组
用Java将列表转换为数组 const $source = document.querySelector('#source'); const $result = document.querySelec ...
- 【零基础学Java】—继承父类并实现多个接口(二十五)
[零基础学Java]-继承父类并实现多个接口(二十五) 一.使用接口的注意事项 1️⃣接口是没有静态代码块或者构造方法的 2️⃣一个类的直接父类是唯一的,但是一个类可以同时实现多个接口 3️⃣如果实现 ...
最新文章
- 我的世界 java开发者_我的世界Java版开发者们畅聊水域更新
- Tomcat默认访问页面
- 光流 | HS光流算法与LK光流算法(基于OpenCV)
- WebApi项目创建CURD
- 海康存储携手英特尔发布AI企业私有云
- 知道无人驾驶的网络安全有多重要吗?英国政府都决定插手开发了
- 华中农业大学第五届程序设计大赛 (7/12)
- iZotope RX 9 Advanced for Mac - 高级音频修复软件
- 在线class文件反编译java
- 10054: An existing connection was forcibly closed by the remote host
- 电脑ping不通的原因
- 【技术贴】Pdf压缩利器--PDFshrink使用教程
- 软件需求分析的五个步骤_建立满足用户需求的云的5个步骤
- azw3电子书如何用安卓手机打开?
- Alice和Bob的故事---非对称加密
- 【读书笔记】《曾国藩的正面与侧面(三)》
- vector内存机制和性能分析
- 【rustdesk】windows安装vcpkg及配置, rustdesk 客户端依赖库安装
- 百度识图API教程二:EasyDL物体检测的使用
- hydra暴力破解ssh密码
热门文章
- masm中常用的伪指令
- cocos2d-x游戏实例(25)-简易动作游戏(3)
- 监听以太网(一) Packet32包说明
- Raw Socket编程
- DDD 领域驱动设计:贫血模型、充血模型的深入解读
- Python的继承多态
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
- LiveVideoStackCon 一次全新的尝试,错过了就是一辈子
- 聚焦新基建,腾讯云十余项自研技术应用集中亮相
- json-c库使用总结