java核心技术卷一笔记(2)
2024-08-25 21:04:09
---恢复内容开始---
异常、断言
所有的异常都继承自Throwable类,异常包括已检查异常和未检查异常,应该抛出已检查异常,而未检查异常要么是不可控的(Error),要么是应该避免发生的(RuntimeError)。p475
对于子类中覆盖了父类方法的方法,其抛出的异常不能比父类中方法抛出的异常更特定,也可以直接不抛出异常。特别的,如果父类中的方法没有抛出异常,那么子类覆盖的方法不能抛出异常。p476
通常应该捕获那些知道应该如何处理的异常,而对于那些不知道该怎么处理的异常将继续进行传递。p480
泛型
在泛型类的设计中,如果要求类型参数一定要实现某个类,则可以对其进行限制,如:T extends Cloneable。p532
如果有多个限定,可以在类(接口)中间用&分隔,且只能有一个类限定而且类要作为第一个限定条件。为了效率,应该将功能最少的接口放在最后面。p533
泛型类在编译为原型类的时候,如果类型参数没有限定则用Object代替,如果有现定则用限定类型替换。p535
桥方法用于解决泛型类擦除类型参数后引起的多态冲突问题。p536
不能创建泛型类型的数组,比如有一个Pair<String>类,不能创建Pair<String>[]数组,但是可以声明变量。不能创建的原因在于在擦除类型变量之后该类型变为Pair[],它可以放置比如Pair<Double>元素。p539
一个类或类型变量不能同时成为两个接口类型的子类,而这两个接口是同一接口的不同参数化。p545
由于通配符不能用于匹配类型,所以带有超类限定的通配符可以保证更改器的完全合法性,可以向泛型对象写入;带有子类限定的通配符可以保证访问器的合法性,可以从泛型类读入对象。p550
---恢复内容结束---
最新文章
- 【代码笔记】iOS-由身份证号码返回性别
- C#使用ajaxForm进行上传图片
- CentOS使用virtualenv搭建独立的Python环境-python虚拟环境
- SQLServer 脚本测试
- 移动Web单页应用开发实践——实现Pull to Request(上/下拉请求操作)
- Visual Studio 文件没发布出来
- 关于heritrix安装配置时出现”必须限制口令文件读取访问权限”的解决方法
- python os.path模块--转载
- cocoaPods的安装和使用之详细介绍
- 使用Autofac部署IIS6.0时未能加载文件或程序集“System.Core, Version=2.0.5.0...“
- [转] EF Configuring a DbContext
- winPcap编程之获取适配器详细信息(三)
- 笔记:Maven 生成项目站点
- 供应商导入的API补充(详解EBS接口开发之供应商导入)
- windows linux 子系统折腾记
- JarvisOJ Basic 爱吃培根的出题人
- 判断js数据类型的四种方法,以及各自的优缺点(转)
- Ubuntu系统查看mongo得慢日志,及一些操作
- tableView与导航栏的偏移问题
- c# Parallel.For 并行编程 执行顺序测试