第1章 Java语言概述 1
1.1 初识Java技术 2
1.1.1 Java发展历程 2
1.1.2 Java技术平台 3
1.1.3 Java语言的特点 3
1.2 理解JVM、JRE和JDK 4
1.2.1 Java程序的运行机制 4
1.2.2 JRE 5
1.2.3 Java开发环境 5
1.3 准备Java开发环境 6
1.3.1 JDK的下载、安装和配置 6
1.3.2 常见的Java开发工具 6
1.4 编写第一个Java程序 7
1.4.1 Java程序的编辑 8
1.4.2 Java程序的编译 9
1.4.3 Java程序的运行 9
1.5 Java程序的结构和语法规范 10
1.5.1 进一步认识Java程序 10
1.5.2 标识符和关键字 12
1.5.3 程序注释 13
1.5.4 对Java程序的再次说明 14
1.6 专题应用:为Java程序输入数据 14
自测与思考 18
第2章 Java语法基础 21
2.1 基本数据类型 22
2.2 变量与常量 23
2.2.1 变量 23
2.2.2 常量 24
2.3 基本数据类型变量的赋值 25
2.3.1 整型变量的赋值 25
2.3.2 浮点型变量的赋值 27
2.3.3 字符型变量的赋值 27
2.3.4 字符串变量的赋值 29
2.3.5 布尔型变量的赋值 29
2.3.6 基本数据类型变量的默认值 30
2.4 表达式与运算符 30
2.4.1 表达式 30
2.4.2 运算符 31
2.4.3 运算符的优先级 35
2.5 扩展表达式和类型转换 36
2.5.1 扩展表达式 36
2.5.2 表达式的数据类型转换 36
2.6 专题应用:数据的随机产生与高效计算 38
自测与思考 42
第3章 程序流程控制 45
3.1 典型程序结构 46
3.2 选择结构 47
3.2.1 if语句 47
3.2.2 switch语句 50
3.3 循环结构 53
3.3.1 for语句 53
3.3.2 while语句 55
3.3.3 do-while语句 57
3.3.4 嵌套循环 58
3.4 控制跳转语句 60
3.4.1 标号语句 60
3.4.2 continue语句 60
3.4.3 break语句 61
3.5 专题应用:典型流程控制算法 62
自测与思考 65
第4章 数组 69
4.1 数组的引入 70
4.1.1 引入数组的必要性 70
4.1.2 数组的概念 70
4.2 一维数组 71
4.2.1 一维数组的定义 71
4.2.2 一维数组的长度 74
4.2.3 创建一维数组的方法 74
4.2.4 一维数组应用举例 75
4.3 二维数组 77
4.3.1 声明二维数组变量 78
4.3.2 创建二维数组 78
4.3.3 二维数组的赋值与使用 79
4.3.4 二维数组的长度 79
4.3.5 非矩阵型二维数组 80
4.3.6 二维数组应用举例 82
4.4 多维数组 84
4.5 专题应用:数组元素的排序 84
自测与思考 87
第5章 Java面向对象编程 90
5.1 面向对象程序设计概述 91
5.1.1 程序设计方法的发展 91
5.1.2 面向对象程序设计的特点 91
5.2 类和对象 92
5.2.1 定义类 93
5.2.2 成员变量 94
5.2.3 成员方法 95
5.2.4 创建、使用和销毁对象 96
5.2.5 方法中的参数传递 99
5.2.6 成员变量、局部变量和方法参数的区别 101
5.3 构造方法 101
5.3.1 构造方法的定义 102
5.3.2 对象的生成过程 104
5.3.3 this关键字 105
5.4 类的继承 107
5.4.1 继承的概念 107
5.4.2 Java继承的实现 108
5.4.3 访问权限修饰符 110
5.4.4 构造方法与继承 111
5.4.5 super关键字 113
5.4.6 Object类 113
5.5 类的多态 114
5.5.1 多态的概念 114
5.5.2 方法重载 114
5.5.3 方法覆盖 115
5.5.4 向上转型和动态绑定 117
5.6 final关键字 119
5.6.1 终极变量 119
5.6.2 终极方法 121
5.6.3 终极类 121
5.7 static关键字 122
5.7.1 静态变量 122
5.7.2 静态方法 124
5.8 抽象类 124
5.8.1 抽象方法 125
5.8.2 抽象类的定义及应用 125
5.9 接口 127
5.9.1 定义接口 127
5.9.2 实现接口 128
5.10 内部类 130
5.10.1 内部类的定义及访问 130
5.10.2 匿名内部类 132
5.11 专题应用:多类设计 133
自测与思考 136
第6章 Java实用类库 139
6.1 Java包及核心API 140
6.1.1 包的概念和作用 140
6.1.2 创建包 140
6.1.3 引用包中的类 142
6.1.4 常用的Java类库 143
6.2 String类和StringBuffer类 144
6.2.1 String类 145
6.2.2 StringBuffer类 148
6.3 集合接口与集合类 150
6.3.1 集合接口与相关实现类 150
6.3.2 常见集合类的用法 153
6.3.3 泛型集合 155
6.4 专题应用:开发一个应用项目的方法 157
自测与思考 160
第7章 异常与断言 162
7.1 异常 163
7.1.1 Java异常机制 163
7.1.2 try-catch语句 163
7.1.3 异常类的继承 165
7.1.4 Exception异常 167
7.1.5 try-catch-finally和try-with-resource结构 167
7.2 断言 169
7.2.1 断言的基本语法 169
7.2.2 断言在单元测试中的应用 171
7.3 专题应用:账户存款管理 172
自测与思考 175
第8章 Java文件操作 177
8.1 File类 178
8.1.1 创建文件对象 178
8.1.2 常用文件操作 178
8.2 文本文件的输入和输出 181
8.2.1 抽象字符流 181
8.2.2 文件字符流 183
8.2.3 缓冲字符流 184
8.3 字节文件的输入和输出 186
8.3.1 抽象字节流 186
8.3.2 文件字节流 188
8.4 数据流和对象流 189
8.4.1 数据流 189
8.4.2 对象流 191
8.5 专题应用:记录式文件的读写 192
自测与思考 195
第9章 Swing程序设计 198
9.1 GUI程序设计简介 199
9.2 Swing容器 200
9.2.1 JFrame容器 201
9.2.2 JPanel容器 203
9.3 布局管理器 204
9.3.1 FlowLayout布局管理器 205
9.3.2 BorderLayout布局管理器 206
9.3.3 GridLayout布局管理器 207
9.3.4 绝对定位 209
9.4 Java事件处理 209
9.4.1 事件模型 209
9.4.2 事件类和事件监听器 211
9.4.3 事件适配器 218
9.4.4 事件监听器的实现方式 219
9.5 常用Swing组件 219
9.5.1 标签 220
9.5.2 按钮 221
9.5.3 文本组件 222
9.5.4 单选按钮和复选框 224
9.5.5 列表框 225
9.5.6 组合框 227
9.5.7 对话框 228
9.5.8 菜单 229
9.6 专题应用:GUI的设计与实现 230
自测与思考 233
第10章 Applet程序设计 236
10.1 Applet简介 237
10.1.1 编写并运行第一个Applet程序 237
10.1.2 Applet程序的执行流程与生命周期 238
10.1.3 Applet类和JApplet类 240
10.1.4 Applet程序的安全性 240
10.2 Applet程序开发过程 240
10.2.1 使用NetBeans创建Applet程序 241
10.2.2 将Applet程序嵌入网页中 242
10.3 利用Applet程序展示多媒体 242
10.3.1 图形绘制 242
10.3.2 图像处理 243
10.3.3 声音输出 244
10.4 专题应用:图片轮换 245
自测与思考 247
第11章 多线程程序设计 249
11.1 线程的概念 250
11.1.1 程序与进程 250
11.1.2 进程与线程 250
11.1.3 Java的多线程机制 250
11.1.4 线程状态和生命周期 251
11.1.5 线程调度与优先级 252
11.2 多线程程序的编写 252
11.2.1 继承Thread类 253
11.2.2 实现Runnable接口 254
11.3 线程同步、死锁与合并 255
11.3.1 线程同步 255
11.3.2 线程死锁 257
11.3.3 线程合并 257
11.4 专题应用:龟兔赛跑 258
自测与思考 260
参考文献 263