《21天学通Java(第8版)》循序渐进地介绍了Java编程语言知识,并提供了丰富的实例和练习,同时全面涵盖了Java 12这一新标准以及与Android开发相关的Java编程知识。
《21天学通Java(第8版)》包括3周的课程,第1周介绍Java语言的基本知识,包括数据类型、变量、表达式、对象、数组、条件语句、循环、类、包、接口、异常、线程等;第2周介绍Java类库,包括链表、栈、哈希映射和位组等数据结构以及Swing组件、布局管理器和Java Web Start等;第3周介绍Java编程的高级主题,包括内部类、输入和输出、闭包、通过Internet进行通信、使用数据库、XML、Web服务、Android编程示例等内容。
《21天学通Java(第8版)》可作为初学者学习Java编程技术的教程,也可供已掌握其他语言的程序员学习Java时参考。
1.适合零基础读者阅读,通过本书的学习,读者可以掌握在计算机、Web服务器和移动设备上开发应用程序所需的知识与技巧。
2.本书针对Java 11和Java 12进行了更新,并介绍了从Java基础知识到Java高级特性和概念在内的所有内容。
3.此外,本书还介绍了Java和Java类库的相关知识。
4.本书源代码和NetBeans 11可供下载。
5.自带测试与练习题,本书带有测试题与练习题,可帮助读者检测知识的掌握情况。
本书内容:
涵盖Java 11和Java 12的新特性;
使用NetBeans开发Java应用程序;
使用易于理解的示例清楚阐释Java编程基础;
开发带有图形用户界面的程序;
使用Derby数据库进行JDBC编程;
使用内部类和Lambda表达式;
使用NetBeans快速开发应用程序;
使用Java开发游戏。
罗格斯·卡登海德(Rogers Cadenhead)是一位经验丰富的软件开发人员,出版了30多部编程和Web发布方面的著作。当前在云平台ServiceNow上使用Java和JavaScript开发应用程序,还维护着本书配套网站www.java21days.com。
第 1周 Java语言
第 1章 Java基础 2
1.1 Java语言 2
1.1.1 Java的历史 2
1.1.2 Java概述 3
1.1.3 选择开发工具 3
1.2 面向对象编程 4
1.3 对象和类 5
1.4 属性和行为 6
1.4.1 属性 6
1.4.2 行为 7
1.4.3 创建类 7
1.4.4 运行程序 9
1.5 组织类和类行为 11
1.5.1 继承 11
1.5.2 创建类层次结构 12
1.5.3 使用继承 14
1.5.4 包 15
1.6 总结 15
1.7 问与答 16
1.8 小测验 16
1.8.1 问题 16
1.8.2 答案 17
1.9 认证练习 17
1.10 练习 17
第 2章 Java编程基础 18
2.1 语句和表达式 18
2.2 变量和数据类型 19
2.2.1 创建变量 19
2.2.2 给变量命名 20
2.2.3 变量类型 20
2.2.4 给变量赋值 21
2.2.5 常量 22
2.3 注释 23
2.4 字面量 24
2.4.1 数字字面量 24
2.4.2 布尔字面量 25
2.4.3 字符字面量 25
2.4.4 字符串字面量 26
2.5 表达式和运算符 26
2.5.1 算术运算符 27
2.5.2 再谈赋值 28
2.5.3 递增和递减运算符 29
2.5.4 比较运算符 29
2.5.5 逻辑运算符 30
2.5.6 运算符优先级 31
2.6 字符串运算 32
2.7 总结 33
2.8 问与答 33
2.9 小测验 34
2.9.1 问题 34
2.9.2 答案 34
2.10 认证练习 34
2.11 练习 35
第3章 对象 36
3.1 创建新对象 36
3.1.1 使用new运算符 36
3.1.2 对象是如何创建的 38
3.1.3 内存管理 38
3.2 使用类变量和实例变量 39
3.2.1 获取值 39
3.2.2 设置值 39
3.2.3 类变量 40
3.3 调用方法 41
3.3.1 设置字符串的格式 42
3.3.2 嵌套方法调用 43
3.3.3 类方法 43
3.4 对象的引用 44
3.5 对象和基本数据类型的强制类型转换 45
3.5.1 强制转换基本数据类型 46
3.5.2 强制转换对象 46
3.5.3 基本数据类型和对象之间的转换 47
3.6 比较对象值和类 48
3.6.1 比较对象 49
3.6.2 判断对象所属的类 50
3.7 总结 50
3.8 问与答 51
3.9 小测验 51
3.9.1 问题 51
3.9.2 答案 52
3.10 认证练习 52
3.11 练习 52
第4章 数组、逻辑和循环 53
4.1 数组 53
4.1.1 声明数组变量 53
4.1.2 创建数组对象 54
4.1.3 访问数组元素 55
4.1.4 修改数组元素 55
4.1.5 多维数组 57
4.2 块语句 58
4.3 if条件语句 58
4.4 switch条件语句 59
4.5 三目运算符 64
4.6 for循环 65
4.7 while和do循环 66
4.7.1 while循环 66
4.7.2 do-while循环 68
4.8 跳出循环 68
4.9 总结 69
4.10 问与答 70
4.11 小测验 70
4.11.1 问题 70
4.11.2 答案 70
4.12 认证练习 71
4.13 练习 71
第5章 创建类和方法 72
5.1 定义类 72
5.2 创建实例变量和类变量 72
5.2.1 定义实例变量 73
5.2.2 类变量 73
5.3 创建方法 73
5.3.1 定义方法 73
5.3.2 关键字this 75
5.3.3 变量作用域和方法定义 75
5.3.4 将参数传递给方法 76
5.3.5 类方法 77
5.4 创建Java应用程序 78
5.5 Java应用程序和参数 79
5.5.1 将参数传递给Java应用程序 79
5.5.2 在Java程序中处理参数 80
5.6 创建同名方法 81
5.7 构造函数 84
5.7.1 基本的构造函数 84
5.7.2 调用另一个构造函数 85
5.7.3 重载构造函数 85
5.8 覆盖方法 86
5.8.1 创建覆盖现有方法的方法 87
5.8.2 调用原来的方法 88
5.8.3 覆盖构造函数 88
5.9 总结 90
5.10 问与答 90
5.11 小测验 91
5.11.1 问题 91
5.11.2 答案 91
5.12 认证练习 91
5.13 练习 92
第6章 包、接口和其他类特性 93
6.1 限定符 93
6.2 静态变量和方法 97
6.3 final类、方法和变量 99
6.3.1 变量 99
6.3.2 方法 99
6.3.3 类 100
6.4 抽象类和方法 100
6.5 包 101
6.5.1 import声明 101
6.5.2 类名冲突 102
6.6 创建自己的包 103
6.6.1 选择包名 103
6.6.2 创建文件夹结构 103
6.6.3 将类加入包中 104
6.6.4 包和类访问控制 104
6.7 接口 104
6.7.1 单继承存在的问题 104
6.7.2 接口和类 105
6.7.3 实现和使用接口 105
6.7.4 实现多个接口 105
6.7.5 接口的其他用途 106
6.8 创建和扩展接口 106
6.8.1 新接口 106
6.8.2 接口中的方法 107
6.8.3 扩展接口 107
6.8.4 创建网上商店 108
6.9 总结 112
6.10 问与答 112
6.11 小测验 112
6.11.1 问题 112
6.11.2 答案 113
6.12 认证练习 113
6.13 练习 114
第7章 异常和线程 115
7.1 异常 115
7.2 管理异常 117
7.2.1 异常一致性检测 117
7.2.2 保护代码和捕获异常 118
7.2.3 finally子句 119
7.3 声明可能引发异常的方法 122
7.3.1 throws子句 122
7.3.2 应引发哪些异常 122
7.3.3 传递异常 123
7.3.4 throws和继承 123
7.4 创建并引发自己的异常 124
7.4.1 引发异常 124
7.4.2 创建自己的异常 125
7.4.3 结合使用throws、try和throw 125
7.5 在什么情况下不使用异常 126
7.6 线程 127
7.6.1 编写线程化程序 127
7.6.2 线程化应用程序 128
7.6.3 终止线程 131
7.7 总结 132
7.8 问与答 132
7.9 小测验 132
7.9.1 问题 133
7.9.2 答案 133
7.10 认证练习 133
7.11 练习 134
第 2周 Java类库
第8章 数据结构 136
8.1 超越数组 136
8.2 Java数据结构 136
8.2.1 Iterator 137
8.2.2 位组 138
8.2.3 链表 140
8.2.4 遍历数据结构 142
8.2.5 栈 144
8.2.6 Map 145
8.2.7 哈希映射 146
8.3 泛型 149
8.4 枚举 151
8.5 总结 152
8.6 问与答 153
8.7 小测验 153
8.7.1 问题 153
8.7.2 答案 153
8.8 认证练习 154
8.9 练习 154
第9章 创建图形用户界面 155
9.1 创建应用程序 155
9.1.1 创建图形用户界面 156
9.1.2 开发框架 157
9.1.3 创建组件 158
9.1.4 将组件加入容器 159
9.2 使用组件 160
9.2.1 图标 160
9.2.2 标签 162
9.2.3 文本框 162
9.2.4 文本区域 163
9.2.5 可滚动窗格 164
9.2.6 复选框和单选按钮 165
9.2.7 组合框 167
9.2.8 列表 168
9.3 Java类库 169
9.4 总结 171
9.5 问与答 171
9.6 小测验 171
9.6.1 问题 171
9.6.2 答案 172
9.7 认证练习 172
9.8 练习 172
第 10章 创建界面 173
10.1 Swing的特性 173
10.1.1 标准对话框 173
10.1.2 使用对话框 176
10.1.3 滑块 178
10.1.4 滚动窗格 179
10.1.5 工具栏 180
10.1.6 进度条 182
10.1.7 菜单 184
10.1.8 选项卡式窗格 185
10.2 总结 187
10.3 问与答 187
10.4 小测验 188
10.4.1 问题 188
10.4.2 答案 188
10.5 认证练习 188
10.6 练习 189
第 11章 在用户界面上排列组件 190
11.1 基本的界面布局 190
11.1.1 布置界面 190
11.1.2 顺序布局 191
11.1.3 方框布局 192
11.1.4 网格布局 194
11.1.5 边框布局 195
11.2 使用多个布局管理器 197
11.3 卡片布局 198
11.3.1 在应用程序中使用卡片布局 198
11.3.2 单元格内边距和面板内边距 203
11.4 总结 203
11.5 问与答 204
11.6 小测验 204
11.6.1 问题 204
11.6.2 答案 205
11.7 认证练习 205
11.8 练习 206
第 12章 响应用户输入 207
12.1 事件监听器 207
12.1.1 设置组件 208
12.1.2 事件处理方法 208
12.2 使用方法 210
12.2.1 行为事件 211
12.2.2 焦点事件 211
12.2.3 选项事件 213
12.2.4 键盘事件 215
12.2.5 鼠标事件 215
12.2.6 鼠标移动事件 216
12.2.7 窗口事件 219
12.2.8 使用适配器类 219
12.2.9 使用内部类 221
12.3 总结 222
12.4 问与答 222
12.5 小测验 223
12.5.1 问题 223
12.5.2 答案 223
12.6 认证练习 223
12.7 练习 224
第 13章 创建Java2D图形 225
13.1 Graphics2D类 225
13.2 绘制文本 226
13.2.1 使用防锯齿改善字体和图形的
质量 228
13.2.2 获取字体的信息 228
13.3 颜色 230
13.3.1 使用Color对象 230
13.3.2 检测和设置当前颜色 231
13.4 绘制直线和多边形 231
13.4.1 用户坐标空间和设备坐标空间 232
13.4.2 指定渲染属性 232
13.4.3 创建要绘制的对象 234
13.4.4 绘制对象 236
13.5 总结 238
13.6 问与答 238
13.7 小测验 238
13.7.1 问题 238
13.7.2 答案 239
13.8 认证练习 239
13.9 练习 240
第 14章 开发Swing应用程序 241
14.1 使用SwingWorker改善性能 241
14.2 网格袋布局 245
14.2.1 设计网格 246
14.2.2 创建网格 247
14.3 总结 251
14.4 问与答 251
14.5 小测验 251
14.5.1 问题 251
14.5.2 答案 252
14.6 认证练习 252
14.7 练习 252
第3周 Java编程
第 15章 使用内部类和Lambda表达式 254
15.1 内部类 254
15.2 Lambda表达式 261
15.3 变量类型推断 264
15.4 总结 265
15.5 问与答 265
15.6 小测验 266
15.6.1 问题 266
15.6.2 答案 266
15.7 认证练习 266
15.8 练习 267
第 16章 输入和输出 268
16.1 流简介 268
16.1.1 使用流 268
16.1.2 过滤流 269
16.1.3 处理异常 269
16.2 字节流 269
16.3 过滤流 273
16.4 字符流 280
16.4.1 读取文本文件 280
16.4.2 写文本文件 282
16.5 文件和路径 283
16.6 总结 284
16.7 问与答 285
16.8 小测验 285
16.8.1 问题 285
16.8.2 答案 286
16.9 认证练习 286
16.10 练习 286
第 17章 通过HTTP进行通信 288
17.1 Java联网技术 288
17.1.1 打开跨越网络的流 288
17.1.2 套接字 292
17.1.3 Socket服务器 294
17.1.4 设计服务器应用程序 295
17.1.5 测试服务器 296
17.2 java.nio包 297
17.2.1 缓冲区 297
17.2.2 通道 300
17.3 总结 307
17.4 问与答 307
17.5 小测验 307
17.5.1 问题 307
17.5.2 答案 308
17.6 认证练习 308
17.7 练习 308
第 18章 使用JDBC和Derby访问数据库 309
18.1 JDBC 309
18.1.1 数据库驱动程序 310
18.1.2 查看数据库 310
18.1.3 读取数据库记录 312
18.1.4 将记录写入数据库 315
18.1.5 遍历结果集 320
18.2 总结 321
18.3 问与答 321
18.4 小测验 321
18.4.1 问题 321
18.4.2 答案 321
18.5 认证练习 322
18.6 练习 322
第 19章 读写RSS Feed 323
19.1 使用XML 323
19.2 设计XML语言 325
19.3 使用Java处理XML 326
19.4 使用XOM处理XML 326
19.4.1 创建XML文档 327
19.4.2 修改XML文档 329
19.4.3 格式化XML文档 332
19.4.4 评估XOM 334
19.5 总结 336
19.6 问与答 337
19.7 小测验 337
19.7.1 问题 337
19.7.2 答案 337
19.8 认证练习 338
19.9 练习 338
第 20章 请求Web服务 339
20.1 XML-RPC简介 339
20.2 使用XML-RPC进行通信 340
20.2.1 发送请求 340
20.2.2 响应请求 341
20.3 选择XML-RPC实现 342
20.4 使用XML-RPC Web服务 343
20.5 创建XML-RPC Web服务 345
20.6 总结 349
20.7 问与答 349
20.8 小测验 349
20.8.1 问题 349
20.8.2 答案 350
20.9 认证练习 350
20.10 练习 350
第 21章 使用Java编写游戏 351
21.1 游戏Banko简介 351
21.2 第 一部分:创建自定义按钮 352
21.2.1 使用Swing设计自定义按钮 354
21.2.2 定义按钮的行为和属性 355
21.2.3 递归地显示空框 356
21.3 第二部分:显示游戏板 357
21.3.1 将组件排列成网格 359
21.3.2 生成随机数 359
21.3.3 使用三目运算符 360
21.4 第三部分:显示游戏框架 361
21.4.1 绘制图形用户界面 364
21.4.2 运行游戏Banko 364
21.4.3 响应单击按钮事件 365
21.5 总结 366
21.6 问与答 366
21.7 小测验 367
21.7.1 问题 367
21.7.2 答案 368
21.8 认证练习 368
21.9 练习 368