第1章 程序设计语言概述 1
1.0本章方法学导引 1
1.1程序的含义和程序设计策略 2
1.1.1程序的含义 2
1.1.2程序设计的通用策略 2
1.2程序设计语言的重要属性 4
1.2.1语言的设计范型 4
1.2.2类型系统 5
1.2.3编译型语言和解释型语言 6
1.3 Java语言概述 7
1.3.1 Java语言的诞生和发展 7
1.3.2 Java语言的特点 8
1.3.3 Java编程环境 10
1.3.4 Java程序的运行原理 12
思考与练习 14
第2章 程序设计语言的基本成分 15
2.0本章方法学导引 15
2.1程序设计语言基本成分概述 16
2.2字符集 17
2.3词法元素 17
2.3.1标识符和关键字 17
2.3.2运算符、分隔符和限界符 18
2.3.3字面量 19
2.3.4注释 19
2.4数据类型 19
2.4.1什么是数据类型 19
2.4.2数据类型的实例 21
2.4.3 Java类型系统概述 22
2.4.4 Java的基本数据类型 22
2.4.5 Java的引用数据类型 25
2.4.6数组 27
2.4.7字符串 29
2.5表达式 31
2.5.1表达式的含义 31
2.5.2表达式计算过程中的类型转换 32
2.5.3表达式的运算顺序 33
2.6 语句 34
2.6.1语句概述 34
2.6.2说明语句 34
2.6.3赋值语句 35
2.6.4输入和输出语句 35
2.6.5控制语句 37
2.6.6标签和转向语句 45
2.7子程序 46
2.7.1子程序概述 46
2.7.2子程序的参数传递 47
2.7.3 Java的应用程序结构 49
思考与练习 49
第3章 程序设计方法概述 52
3.0本章方法学导引 52
3.1问题规模对程序设计方法的影响 53
3.2结构化程序设计方法 54
3.2.1方法起源 54
3.2.2核心思想 54
3.2.3实例剖析 55
3.2.4结构化程序设计方法的优缺点 56
3.3面向对象程序设计方法 56
3.3.1方法起源 56
3.3.2核心思想 57
3.3.3基本概念 58
3.3.4实例剖析 60
3.4两种方法的简单评述 61
思考与练习 62
第4章 面向对象语言基础 64
4.0本章方法学导引 64
4.1区分类、对象和对象的引用 65
4.1.1一个简单的例子 65
4.1.2对象和对象引用的内存管理 66
4.1.3对象及其引用的创建和初始化 69
4.1.4对象的销毁 70
4.2对象的使用 71
4.2.1对象的引用 71
4.2.2赋值 72
4.2.3相等判断 72
4.2.4对象数组 73
4.2.5从存储管理角度解释参数传递 74
4.2.6成员变量和局部变量 75
4.3类的继承 76
4.3.1继承的语法 76
4.3.2 is-A与has-A关系 77
4.3.3构造函数的调用顺序 77
4.3.4 super和this 78
4.4类及其成员的修饰 80
4.4.1访问权限修饰 80
4.4.2 final修饰 81
4.4.3 static修饰 82
4.5对象的多态 84
4.5.1多态的含义 84
4.5.2重载 85
4.5.3重写 86
4.5.4重定义 89
4.5.5 instanceof与多态性 90
4.6抽象类和接口 91
4.6.1抽象类和接口的引入背景 91
4.6.2抽象方法和抽象类 91
4.6.3接口 93
4.7类中的特殊成员 97
4.7.1内嵌类型 97
4.7.2初始化块 100
4.7.3本地方法 101
思考与练习 101
第5章 类的管理以及常用工具类 104
5.0本章方法学导引 104
5.1包 105
5.1.1包的声明和导入 105
5.1.2访问权限 107
5.2包装器类和自动装箱/拆箱 108
5.2.1包装器类的引入背景 108
5.2.2包装器类的构造函数 109
5.2.3包装器类的常用方法 109
5.2.4自动装箱和自动拆箱 110
5.3枚举 111
5.4数组的高级应用 112
5.4.1紧凑型for循环结构 112
5.4.2复制数组 112
5.4.3 Arrays工具类 113
5.5字符串的高级应用 114
5.5.1 StringBuffer和StringBuilder 114
5.5.2正则表达式 114
5.5.3 String的高级应用 116
思考与练习 118
第6章 异常处理和断言 120
6.0本章方法学导引 120
6.1异常机制概述 121
6.1.1异常难以避免 121
6.1.2传统的异常处理手段 121
6.1.3 Java的异常处理策略 122
6.1.4 Java异常的分类 122
6.2异常处理机制 123
6.2.1异常的捕获和处理 123
6.2.2异常的声明 125
6.3对异常机制的补充 126
6.3.1虚拟机异常和程序性异常 126
6.3.2异常的传播 126
6.3.3对重写方法的补充说明 127
6.4自定义异常类 128
6.5断言 129
思考与练习 130
第7章 线程 131
7.0本章方法学导引 131
7.1线程机制概述 132
7.1.1并发程序的引入背景 132
7.1.2程序、进程与线程 132
7.1.3 Java线程机制概述 133
7.1.4 Java的线程状态和生命周期 135
7.2线程的构造和运行 136
7.2.1用Thread类构造线程对象 136
7.2.2用Runnable辅助构造线程 138
7.3线程的互斥机制 139
7.3.1为何需要引入互斥机制 139
7.3.2怎样实现互斥 140
7.3.3 synchronized标记 141
7.3.4关于互斥的进一步讨论 142
7.4线程的同步机制 144
7.4.1线程的异步与同步 144
7.4.2如何实现同步 144
7.4.3 Java的同步机制实现 145
7.5线程调度 147
7.5.1线程的优先级和调度策略 148
7.5.2线程调度常用方法 149
思考与练习 150
第8章GUI编程基础和Applet 152
8.0本章方法学导引 152
8.1 GUI编程概述 153
8.1.1字符用户界面和图形用户界面 153
8.1.2图形用户界面的基本元素 153
8.1.3 awt和swing 154
8.1.4 GUI编程涉及的基本环节 155
8.2一个简单界面的设计 155
8.2.1常用组件介绍 155
8.2.2一个简单GUI界面的设计实例 156
8.3委托事件处理模型 157
8.3.1模型的方法学思想 157
8.3.2模型的构成要素和应用步骤 158
8.3.3两个简单的事件处理实例 159
8.3.4适配器类 162
8.4布局管理 163
8.4.1布局管理概述 163
8.4.2 Flow布局 164
8.4.3 GridLayout布局 165
8.4.4 BorderLayout布局 165
8.5一个综合案例 166
8.6 Applet应用程序 169
8.6.1什么是Applet 169
8.6.2 URL和HTML 169
8.6.3一个简单的Applet 170
8.6.4 Applet生命周期和主要方法 171
8.6.5 Applet综合应用示例 173
8.6.6 Applet的安全限制 174
8.7绘图基础 174
8.7.1概述 174
8.7.2绘图机制 175
8.7.3若干示例 175
思考与练习 178
第9章I/O流 180
9.0本章方法学导引 180
9.1 I/O流概述 181
9.1.1 I/O流的引入背景 181
9.1.2 I/O流的总体设计 182
9.1.3 I/O流的基本应用框架 183
9.2应用1:文件读/写 183
9.2.1相关类简介 183
9.2.2逐个字符读/写文件 184
9.2.3按字符流整体读/写文件 185
9.2.4基于缓冲区读/写文件 186
9.2.5一个简单的文本文件编辑器 186
9.3应用2:基本类型数据的读/写 189
9.3.1系统类和标准流 190
9.3.2从标准输入流读取数据 190
9.3.3数值型数据的读/写 191
9.3.4标准I/O重定向 193
9.4应用3:对象的序列化 193
9.4.1对象序列化的产生背景 193
9.4.2对象序列化的实现 194
9.4.3自定义序列化/反系列化过程 197
思考与练习 198
第10章 网络通信 200
10.0本章方法学导引 200
10.1基础知识 201
10.1.1计算机网络和Java语言 201
10.1.2网络中的相关标识 201
10.1.3网络协议 202
10.2以URL方式访问网络资源 204
10.2.1相关类简介 204
10.2.2 URL访问网络资源的基本步骤 205
10.2.3三个例子 205
10.3基于流的端对端通信方式 208
10.3.1相关类简介 208
10.3.2实施通信的基本步骤 208
10.3.3两个例子 209
10.4基于数据报的端对端通信方式 213
10.4.1相关类简介 213
10.4.2实施通信的基本步骤 213
10.4.3一个例子 214
思考与练习 215
第11章 泛型与集合框架 216
11.0本章方法学导引 216
11.1泛型含义及引入背景 217
11.2 Java泛型声明 218
11.2.1泛型的简单声明和具体化 218
11.2.2泛型参数的应用场合 219
11.2.3给泛型参数加上约束 220
11.2.4泛型参数的通配符 223
11.3 Java泛型实现机理及注意事项 226
11.3.1 Java泛型实现机理:擦拭 226
11.3.2 Java泛型机制的相关约束 228
11.4泛型综合应用示例 230
11.4.1一个简单的泛型容器 231
11.4.2泛型迭代器 232
11.5泛型综合应用:集合框架 235
11.5.1集合框架引入背景 235
11.5.2集合框架的基础结构 236
11.5.3 List结构应用示例 237
11.5.4 Set结构应用示例 239
11.5.5 Map结构应用示例 241
思考与练习 243
参考文献 245