java核心技术卷一笔记(2)
---恢复内容开始---
异常、断言
所有的异常都继承自Throwable类,异常包括已检查异常和未检查异常,应该抛出已检查异常,而未检查异常要么是不可控的(Error),要么是应该避免发生的(RuntimeError)。p475
对于子类中覆盖了父类方法的方法,其抛出的异常不能比父类中方法抛出的异常更特定,也可以直接不抛出异常。特别的,如果父类中的方法没有抛出异常,那么子类覆盖的方法不能抛出异常。p476
通常应该捕获那些知道应该如何处理的异常,而对于那些不知道该怎么处理的异常将继续进行传递。p480
泛型
在泛型类的设计中,如果要求类型参数一定要实现某个类,则可以对其进行限制,如:T extends Cloneable。p532
如果有多个限定,可以在类(接口)中间用&分隔,且只能有一个类限定而且类要作为第一个限定条件。为了效率,应该将功能最少的接口放在最后面。p533
泛型类在编译为原型类的时候,如果类型参数没有限定则用Object代替,如果有现定则用限定类型替换。p535
桥方法用于解决泛型类擦除类型参数后引起的多态冲突问题。p536
不能创建泛型类型的数组,比如有一个Pair<String>类,不能创建Pair<String>[]数组,但是可以声明变量。不能创建的原因在于在擦除类型变量之后该类型变为Pair[],它可以放置比如Pair<Double>元素。p539
一个类或类型变量不能同时成为两个接口类型的子类,而这两个接口是同一接口的不同参数化。p545
由于通配符不能用于匹配类型,所以带有超类限定的通配符可以保证更改器的完全合法性,可以向泛型对象写入;带有子类限定的通配符可以保证访问器的合法性,可以从泛型类读入对象。p550
---恢复内容结束---
java核心技术卷一笔记(2)的更多相关文章
- java核心技术卷一笔记(1)
jdk是java开发工具包,里面包含了javac.jar.javadoc.java等工具,可以在bin目录中找到.有一个文件夹是jre,即jdk也包含了java运行环境.jre可单独安装,只是运行ja ...
- Java核心技术卷一 · 笔记(2)
目录 1.多态.动态绑定 2.覆盖 3.阻止继承:final 类和方法 4.抽象类(abstract修饰) 5. 4 个访问修饰符: 6.toString() 7.对设计继承关系很有帮助的建议 8.接 ...
- Java核心技术卷一 · 笔记(1)
目录 1.java的关键术语 2.==和equals 3.空串与 Null 串 4.构建字符串 5.封装 6.对象的三个主要特性 7.依赖(dependence).聚合(aggregation).继承 ...
- java 核心技术卷一笔记 6 .2.3 接口 lambda 表达式 内部类
6.2.3 对象克隆 Cloneable 接口,这个接口指示一个类提供了一个安全的clone方法.(稍作了解) 为一个对象引用的变量建立副本时,原变量和副本都是同一个对象的引用,任何一个变量改变都 ...
- java 核心技术卷一笔记 6 .2接口 lambda 表达式 内部类
6.2 接口实例 6.2.1 接口与回调 在java.swing包中有一个Timer类,可以使用它在到达给定的时间间隔时发出通告,假如程序中有一个时钟,就可以请求每秒钟获得一个通告,以便更新时钟的表盘 ...
- java 核心技术卷一笔记 6 .1接口 lambda 表达式 内部类
6.1 接口不是类,是对类的一组需求的描述,这些类需要遵守接口描述的统一格式进行定义.例如:Arrays类中sort方法(可以对对象数组进行排序)前提是对象所属的类必须实现了Comparable 接口 ...
- java 核心技术卷一笔记 6 .1.接口 lambda 表达式 内部类
6.1.2 接口不是类,不能实例化一个接口:但是可以声明接口的变量:Comparable x; 接口变量必须引用实现了接口的类对象:x = new Employee(); 检查一个对象是否属于某 ...
- 【阅读笔记】Java核心技术卷一 #0
这是一篇备忘性质的读书笔记,仅记录个人觉得有用的知识点 本文作为一个目录索引,部分章节跳过 吐槽:此书中文翻译有不少地方不太通顺,这种情况我要把英文版对应的部分也读一遍才能明白(说实话,英文里的从句表 ...
- java核心技术卷一
java核心技术卷一 java基础类型 整型 数据类型 字节数 取值范围 int 4 +_2^4*8-1 short 2 +_2^2*8-1 long 8 +_2^8*8-1 byte 1 -128- ...
随机推荐
- Android服务端的设计
1.创建自己的MyServletContextListener.java: package yybwb; import java.net.ServerSocket; import javax.serv ...
- ArrayList源码浅析(jdk1.8)
ArrayList的实质就是动态数组.所以可以通过下标准确的找到目标元素,因此查找的效率高.但是添加或删除元素会涉及到大量元素的位置移动,所以效率低. 一.构造方法 ArrayList提供了3个构造方 ...
- rsync随机启动脚本
服务端 #!/bin/sh # chkconfig: # description: Saves and restores system entropy pool for \ #create by xi ...
- Android - FragmentTabHost 与 Fragment 制作页面切换效果
使用 FragmentTabHost 与 Fragment 制作页面切换效果 API 19 TabHost已经不建议使用了.用 FragmentTabHost 来代替TabHost.实际上 Fragm ...
- Android - 读取JSON文件数据
Android读取JSON文件数据 JSON - JavaScript Object Notation 是一种存储和交换文本信息的语法. JSON对象在花括号中书写.用逗号来分隔值. JSON数组在方 ...
- 安装Scala-2.11.7——集群学习日记
前言 在安装Spark之前,我们需要安装Scala语言的支持.在此我选择的是scala-2.11.7版本. scala-2.11.7下载 为了方便,我现在我的SparkMaster主机上先安装,把目录 ...
- 在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)
最近公司的大厅要重做,我协助主程一起制作新大厅和新框架,前面制作的编辑器也派上了用场.等全部功能做完后我会再写一个复盘,这两天主程在忙于写热更新的功能,所以把接入分享SDK功能的任务交给了我,Shar ...
- 关于使用JQuery追加Option标签时使用三元运算符添加选中属性的解决办法
$(data.resultList).each(function () { var selectedFlag = ${sessionScope.userI ...
- select可选择、同时可自行输入
HTML部分: <li class="bl-form-group"> <label>诊断医生</label> <div class=&qu ...
- HDOJ2012-素数判定
Problem Description 对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数. I ...