第1章 声明和访问控制 1
1.1 Java复习 2
1.1.1 标识符和关键字 2
1.1.2 继承 2
1.1.3 接口 2
1.2 Java的特性和优点(OCA考点1.5) 3
1.3 标识符和关键字(OCA考点1.2和2.1) 4
1.3.1 合法的标识符 4
1.3.2 Oracle的Java语言编码规范 5
1.4 定义类(OCA考点1.2,1.3,1.4,6.4,7.5) 6
1.4.1 源文件的声明规则 7
1.4.2 使用javac和java命令 7
1.4.3 使用public static void main(String[]args) 8
1.4.4 import语句和JavaAPI 9
1.4.5 静态导入语句 10
1.4.6 类声明和修饰符 11
1.5 使用Java接口(OCA考点7.5) 16
1.5.1 声明接口 16
1.5.2 声明接口常量 18
1.5.3 声明default接口方法 19
1.5.4 声明static接口方法 19
1.6 声明类成员(OCA考点2.1,2.2,2.3,4.1,4.2,6.2,6.3,6.4) 20
1.6.1 访问修饰符 20
1.6.2 非访问成员修饰符 30
1.6.3 构造函数的声明 35
1.6.4 变量的声明 35
1.7 声明和使用枚举类型(OCA考点1.2) 42
1.7.1 声明枚举类型 43
1.7.2 在枚举类型中声明构造函数、方法和变量 44
1.8 认证考试总结 46
1.9 两分钟冲刺 47
1.10 自测题 52
1.11 自测题答案 57
第2章 面向对象 59
2.1 封装(OCA考点6.1和6.5) 60
2.2 继承和多态(OCA考点7.1和7.2) 62
2.2.1 继承的进化 63
2.2.2 IS-A和HAS-A关系 65
2.3 多态(OCA考点7.2) 68
2.4 重写/重载(OCA考点6.1和7.2) 71
2.4.1 重写方法 71
2.4.2 重载的方法 75
2.5 类型转换(OCA考点2.2和7.3) 80
2.6 实现接口(OCA考点7.5) 82
2.7 合法的返回类型(OCA考点2.2和6.1) 87
2.7.1 返回类型声明 87
2.7.2 返回值 88
2.8 构造函数和实例化(OCA考点6.3和7.4) 89
2.8.1 构造函数基础 90
2.8.2 构造函数链 90
2.8.3 构造函数的规则 91
2.8.4 判断是否会创建默认构造函数 92
2.8.5 重载的构造函数 95
2.9 初始化块(OCA考点1.2和6.3) 98
2.10 Static(OCA考点6.2) 100
2.11 认证考试总结 105
2.12 两分钟冲刺 106
2.13 自测题 109
2.14 自测题答案 116
第3章 赋值 119
3.1 栈和堆的快速回顾 120
3.2 字面值、赋值和变量(OCA考点2.1,2.2和2.3) 121
3.2.1 所有基本类型的字面值 121
3.2.2 赋值运算符 124
3.3 作用域(OCA考点1.1) 131
3.4 变量初始化(OCA考点2.1,4.1和4.2) 133
3.4.1 使用未初始化和未赋值的变量或数组元素 133
3.4.2 局部(栈、自动)基本类型变量和对象类型变量 135
3.5 将变量传递给方法(OCA考点6.6) 139
3.5.1 传递对象引用变量 139
3.5.2 Java使用值传递语义吗 140
3.5.3 传递基本类型变量 141
3.6 垃圾回收(OCA考点2.4) 143
3.6.1 内存管理和垃圾回收概要 143
3.6.2 Java垃圾回收器概要 143
3.6.3 编写代码显式地将对象标记为可回收对象 144
3.7 认证考试总结 149
3.8 两分钟冲刺 149
3.9 自测题 151
3.10 自测题答案 157
第4章 运算符 159
4.1 Java运算符(OCA考点3.1,3.2和3.3) 160
4.1.1 赋值运算符 160
4.1.2 关系运算符 161
4.1.3 instanceof比较运算符 165
4.1.4 算术运算符 167
4.1.5 条件运算符 171
4.1.6 逻辑运算符 172
4.1.7 运算符的优先级 175
4.2 认证考试总结 177
4.3 两分钟冲刺 177
4.4 自测题 179
4.5 自测题答案 183
第5章 流程控制和异常 187
5.1 使用if和switch语句(OCA考点3.3和3.4) 188
5.1.1 if-else分支语句 188
5.1.2 switch语句 192
5.2 创建循环结构(OCA考点5.1,5.2,5.3,5.4,5.5) 198
5.2.1 使用while循环 198
5.2.2 使用do循环 199
5.2.3 使用for循环 199
5.2.4 使用break和continue 203
5.2.5 无标签的语句 204
5.2.6 带标签的语句 205
5.3 处理异常(OCA考点8.1,8.2,8.3,8.4,8.5) 206
5.3.1 使用try和catch捕获异常 207
5.3.2 使用finally 208
5.3.3 未捕获异常的传递 210
5.3.4 定义异常 212
5.3.5 异常的层级结构 212
5.3.6 处理异常树上的整个类 213
5.3.7 异常的匹配 214
5.3.8 异常的声明和公共接口 215
5.3.9 重新抛出同一个异常 219
5.4 常见的异常和错误(OCA考点8.5) 220
5.4.1 异常来自于何处 220
5.4.2 JVM抛出的异常 221
5.4.3 由程序抛出的异常 221
5.4.4 考试范围中的异常和错误的总结 222
5.5 认证考试总结 223
5.6 两分钟冲刺 224
5.7 自测题 226
5.8 自测题答案 233
第6章 字符串、数组、ArrayList、日期与Iambada表达式 237
6.1 使用字符串和StringBuilder类(OCA考点9.2和9.1) 238
6.1.1 String类 238
6.1.2 关于字符串和内存的重要事实 242
6.1.3 String类中的重要方法 243
6.1.4 StringBuilder类 245
6.1.5 StringBuilder类的一些重要方法 247
6.2 处理日历数据(OCA考点9.3) 248
6.2.1 不变性 249
6.2.2 工厂类 250
6.2.3 使用和处理日期和时间 250
6.2.4 格式化日期和时间 252
6.3 使用数组(OCA考点4.1和4.2) 253
6.3.1 声明数组 253
6.3.2 构造数组 254
6.3.3 初始化数组 256
6.4 使用ArrayList和封装类(OCA考点9.4和2.5) 263
6.4.1 何时使用ArrayList 264
6.4.2 实际使用中的ArrayList方法 266
6.4.3 ArrayList类的重要方法 266
6.4.4 ArrayList的自动装箱 267
6.4.5 Java 7的“菱形”语法 270
6.5 高级封装(OCA考点6.5) 270
6.6 使用简单的lambda表达式(OCA考点9.5) 271
6.7 认证考试总结 275
6.8 两分钟冲刺 276
6.9 自测题 278
6.10 自测题答案 286
附录A 关于模拟考试软件 289