第1章 Java入门 1
1.1 Java的地位 1
1.1.1网络地位 1
1.1.2语言地位 2
1.1.3需求地位 2
1.2 Java的特点 2
1.2.1简单 2
1.2.2面向对象 2
1.2.3平台无关 2
1.2.4多线程 4
1.2.5动态 4
1.3安装JDK 4
1.3.1 3种平台简介 4
1.3.2安装Java SE平台 5
1.3.3设置系统环境变量 6
1.4 Java程序的开发步骤 7
1.5简单的Java应用程序 8
1.5.1源文件的编写与保存 8
1.5.2编译 9
1.5.3运行 10
1.5.4运行环境的选择 11
1.6 Java应用程序的基本结构 12
1.7注释 14
1.8编程风格 14
1.8.1 Allmans风格 14
1.8.2 Kernighan风格 15
1.9 Java之父——James Gosling 15
1.10小结 16
习题1 16
第2章 基本数据类型、数组和枚举类型 19
2.1标识符和关键字 19
2.1.1标识符 19
2.1.2关键字 19
2.2基本数据类型 20
2.2.1逻辑类型 20
2.2.2整数类型 20
2.2.3字符类型 21
2.2.4浮点类型 22
2.2.5基本数据类型的转换 23
2.3从命令行输入与输出数据 25
2.3.1输入基本型数据 25
2.3.2输出基本型数据 27
2.4数组 28
2.4.1声明数组 28
2.4.2创建数组 28
2.4.3数组元素的使用 29
2.4.4 length的使用 30
2.4.5数组的初始化 30
2.4.6数组的引用 30
2.4.7数组的表示格式 32
2.4.8复制数组 32
2.4.9排序与使用二分法查找 35
2.5枚举类型 36
2.6小结 37
习题2 37
第3章 运算符、表达式和语句 41
3.1运算符与表达式 41
3.1.1算术运算符与算术表达式 41
3.1.2自增、自减运算符 41
3.1.3算术混合运算的精度 42
3.1.4关系运算符与关系表达式 42
3.1.5逻辑运算符与逻辑表达式 43
3.1.6赋值运算符与赋值表达式 43
3.1.7位运算符 43
3.1.8 instanceof运算符 45
3.1.9运算符综述 45
3.2语句概述 46
3.3条件分支语句 46
3.3.1 if语句 46
3.3.2 if…else语句 47
3.3.3 if…else if…else语句 49
3.4开关语句 50
3.5循环语句 52
3.5.1 fo r循环语句 52
3.5.2 while循环语句 52
3.5.3 do…while循环语句 53
3.6 break和continue语句 53
3.7数组与for语句 54
3.8枚举类型与for、switch语句 55
3.9小结 57
习题3 57
第4章 类与对象 62
4.1编程语言的几个发展阶段 62
4.1.1面向机器语言 62
4.1.2面向过程语言 62
4.1.3面向对象语言 63
4.2类 64
4.2.1类的声明 64
4.2.2类体 65
4.2.3成员变量和局部变量 65
4.2.4方法 68
4.2.5方法重载 69
4.2.6构造方法 70
4.2.7类方法和实例方法 70
4.2.8几个值得注意的问题 70
4.3对象 72
4.3.1构造方法 72
4.3.2创建对象 73
4.3.3使用对象 75
4.3.4对象的引用和实体 78
4.4参数传值 80
4.4.1基本数据类型参数的传值 80
4.4.2引用类型参数的传值 81
4.4.3可变参数 84
4.4.4有理数的类封装 85
4.5对象的组合 89
4.6 static关键字 92
4.6.1实例变量和类变量的区别 92
4.6.2实例方法和类方法的区别 93
4.7 th is关键字 94
4.7.1在构造方法中使用this 94
4.7.2在实例方法中使用this 95
4.8包 97
4.8.1包语句 97
4.8.2有包名的类的存储目录 97
4.8.3运行有包名的主类 98
4.9 import语句 99
4.9.1引入类库中的类 99
4.9.2引入自定义包中的类 100
4.9.3使用无包名的类 103
4.9.4避免类名混淆 103
4.10访问权限 104
4.10.1私有变量和私有方法 104
4.10.2公有变量和公有方法 106
4.10.3友好变量和友好方法 107
4.10.4受保护的成员变量和方法 107
4.10.5 public类与友好类 108
4.11基本数据类型的类封装 108
4.11.1 Double和Float类 108
4.11.2 Byte、 Short、Integer和Long类 109
4.11.3 Character类 109
4.11.4自动装箱与拆箱 110
4.12反编译器和文件生成器 111
4.12.1使用反编译器 111
4.12.2使用文件生成器 111
4.13 jar文件 113
4.13.1文档性质的jar文件 113
4.13.2可运行的jar文件 115
4.14 var声明局部变量 117
习题4 119
第5章 继承与接口 125
5.1子类与父类 125
5.2子类的继承性 126
5.2.1子类和父类在同一包中的继承性 126
5.2.2子类和父类不在同一包中的继承性 126
5.2.3 protected的进一步说明 127
5.3子类对象的构造过程 128
5.4成员变量的隐藏和方法重写 129
5.4.1成员变量的隐藏 129
5.4.2方法重写 130
5.5 super关键字 133
5.5.1使用super调用父类的构造方法 133
5.5.2使用super操作被隐藏的成员变量和方法 134
5.6 final关键字 136
5.6.1 final类 136
5.6.2 final方法 136
5.6.3常量 136
5.7对象的上转型对象 137
5.8继承与多态 139
5.9 abstract类和方法 140
5.9.1 abstract类的特点与理解 140
5.9.2 abstract类与多态 143
5.10接口 146
5.10.1接口的定义与使用 146
5.10.2接口回调 149
5.10.3理解接口 150
5.10.4接口与多态 151
5.10.5 abstract类与接口的比较 154
5.11小结 154
习题5 154
第6章 内部类、匿名类与Lambda表达式、异常类 160
6.1内部类 160
6.2匿名类 162
6.2.1和类有关的匿名类 162
6.2.2和接口有关的匿名类 163
6.3 Lambda表达式 164
6.4异常类 165
6.4.1 try…catch语句 166
6.4.2自定义异常类 167
6.4.3 finally子语句 168
6.5 Class类 170
6.5.1 Java反射 170
6.5.2使用Class实例化一个对象 171
6.6断言语句 172
6.7小结 173
习题6 174
第7章 面向对象设计的基本原则 178
7.1 UML类图简介 178
7.1.1类的UML图 178
7.1.2表示接口的UML图 179
7.1.3泛化关系 179
7.1.4关联关系 179
7.1.5依赖关系 180
7.1.6实现关系 180
7.1.7注释 180
7.2面向抽象原则 181
7.2.1抽象类和接口 181
7.2.2面向抽象 182
7.3“开-闭”原则 185
7.4“多用组合、少用继承”原则 186
7.4.1继承与复用 186
7.4.2组合与复用 186
7.4.3组合与继承 188
7.5“高内聚-低耦合”原则 188
7.6小结 188
习题7 189
第8章 设计模式 190
8.1设计模式简介 190
8.1.1什么是设计模式 190
8.1.2学习设计模式的必要性 190
8.1.3什么是框架 191
8.1.4模式的分类 191
8.2策略模式 192
8.2.1策略模式的结构 192
8.2.2策略模式的使用 197
8.2.3策略模式的优点 197
8.2.4适合使用策略模式的情景 198
8.2.5策略模式相对继承机制的优势 198
8.3访问者模式 198
8.3.1访问者模式的结构 198
8.3.2访问者模式的使用 201
8.3.3双重分派 201
8.3.4访问者模式的优点 202
8.3.5适合使用访问者模式的情景 202
8.4装饰模式 202
8.4.1装饰模式的结构 203
8.4.2装饰模式的使用 205
8.4.3使用多个装饰者 206
8.4.4装饰模式相对继承机制的优势 207
8.4.5装饰模式的优点 208
8.4.6适合使用装饰模式的情景 208
8.5适配器模式 208
8.5.1适配器模式的结构 208
8.5.2适配器模式的使用 210
8.5.3适配器的适配程度 211
8.5.4单接口适配器 211
8.6工厂方法模式 212
8.6.1工厂方法模式的结构 212
8.6.2工厂方法模式的使用 214
8.7责任链模式 215
8.7.1责任链模式的结构 215
8.7.2责任链模式的使用 218
8.7.3责任链模式的优点 221
8.7.4适合使用责任链模式的情景 221
8.8小结 221
习题8 221
第9章 常用实用类 222
9.1 String类 222
9.1.1构造String对象 222
9.1.2 String类的常用方法 224
9.1.3 String对象与基本数据的相互转化 228
9.1.4对象的String表示 230
9.1.5字符序列与字符、字节数组 231
9.2正则表达式 233
9.2.1正则表达式与元字符 233
9.2.2常用的正则表达式 235
9.2.3字符序列的替换与分解 235
9.3 StringTokenizer类 238
9.4 Scanner类 239
9.5 Pattern与Matcher类 241
9.6 StringBuffer类 243
9.6.1 StringBuffer对象的创建 243
9.6.2 StringBuffer类的常用方法 245
9.7日期与时间 246
9.7.1 java.time包 246
9.7.2日期、时间差和日历 249
9.7.3日期格式化 252
9.8 Math、BigInteger和Random类 254
9.8.1 Math类 254
9.8.2 BigInteger类 255
9.8.3 Random类 256
9.9小结 258
习题9 258
第10章 Java Swing 262
10.1 Java Swing概述 262
10.2窗口 263
10.2.1 JFrame常用方法 263
10.2.2菜单条、菜单、菜单项 264
10.3常用组件、容器与布局 266
10.3.1常用组件 266
10.3.2常用容器 268
10.3.3常用布局 270
10.4处理事件 276
10.4.1事件处理模式 276
10.4.2 ActionEvent事件 277
10.4.3 ItemEvent事件 281
10.4.4 DocumentEvent事件 284
10.4.5 MouseEvent事件 286
10.4.6焦点事件 290
10.4.7键盘事件 290
10.4.8窗口事件 293
10.4.9匿名类、适配器或窗口做监视器 295
10.4.10事件的总结 297
10.5使用MVC结构 297
10.6树组件与表格组件 300
10.6.1树组件 300
10.6.2表格组件 303
10.7将按钮绑定到键盘 304
10.8使用中介者模式 307
10.9发布GUI程序 310
10.10小结 311
习题10 311
第11章 对话框 316
11.1 JDialog类 316
11.1.1 JDialog类的主要方法 316
11.1.2对话框的模式 317
11.2文件对话框 319
11.3消息对话框 321
11.4输入对话框 322
11.5确认对话框 324
11.6颜色对话框 325
11.7小结 327
习题11 327
第12章 输入流与输出流 328
12.1 File类 328
12.1.1文件的属性 329
12.1.2目录 329
12.1.3文件的创建与删除 331
12.1.4运行可执行文件 331
12.2文件字节流 332
12.2.1文件字节输入流 332
12.2.2文件字节输出流 333
12.2.3关闭流 335
12.3文件字符流 335
12.4缓冲流 337
12.5使用文件对话框 338
12.6随机流 341
12.7数组流 344
12.8数据流 345
12.9带进度条的输入流 347
12.10对象流 348
12.11序列化与对象克隆 350
12.12文件锁 351
12.13使用Scanner类解析文件 353
12.14小结 356
习题12 356
第13章 泛型与集合框架 358
13.1泛型 358
13.1.1泛型类 358
13.1.2使用泛型类声明对象 359
13.1.3泛型接口 361
13.2链表 362
13.2.1 LinkedList〈E〉泛型类 363
13.2.2 Linked List〈E〉泛型类的常用方法 363
13.2.3遍历链表 364
13.3堆栈 370
13.4散列映射 371
13.4.1 HashMap〈K,V〉泛型类 371
13.4.2 HashMap〈K,V〉泛型类的常用方法 371
13.4.3遍历散列映射 372
13.4.4基于散列映射的查询 372
13.5树集 374
13.5.1TreeSet〈E〉泛型类 374
13.5.2结点的大小关系 374
13.5.3TreeSet类的常用方法 374
13.6树映射 376
13.7自动装箱与拆箱的使用 377
13.8集合 378
13.8.1 HashSet〈E〉泛型类 378
13.8.2常用方法 378
13.8.3集合的交、并与差 380
13.9小结 381
习题13 381
第14章 JDBC与MySQL数据库 383
14.1 MySQL数据库管理系统 383
14.2启动MySQL数据库服务器 385
14.3 MySQL客户端管理工具 386
14.4JDBC 390
14.5连接MySQL数据库 390
14.6查询操作 393
14.6.1顺序查询 394
14.6.2控制游标 396
14.6.3条件与排序查询 398
14.7更新、添加与删除操作 400
14.8使用预处理语句 401
14.8.1预处理语句的优点 401
14.8.2使用通配符 402
14.9通用查询 403
14.10事务 406
14.10.1事务及处理 406
14.10.2 J D B C事务处理步骤 406
14.11连接SQL Server数据库 408
14.12连接内置Derby数据库 409
14.13连接Access数据库 411
14.14注册与登录 413
14.14.1设计思路 413
14.14.2具体设计 414
14.14.3用户程序 421
14.15小结 422
习题14 422
第15章 Java多线程机制 424
15.1 Java中的线程 424
15.1.1程序、进程与线程 424
15.1.2线程的状态与生命周期 424
15.1.3线程的调度与优先级 429
15.2用Thread的子类创建线程 429
15.3使用Runnable接口 430
15.3.1 Runnable接口与目标对象 430
15.3.2 run()方法中的局部变量 432
15.3.3在线程中启动其他线程 433
15.4线程的常用方法 434
15.5 GUI线程 437
15.6线程的同步 441
15.7在同步方法中使用wait()、notify()和notifyAll()方法 443
15.8计时器线程Timer 447
15.9线程的联合 449
15.10守护线程 450
15.11小结 451
习题15 451
第16章 Java网络基础 454
16.1 URL类 454
16.1.1 URL的构造方法 454
16.1.2读取URL中的资源 455
16.1.3显示URL资源中的HTML文件 456
16.1.4处理超链接 458
16.2 In etAd dress类 459
16.2.1地址的表示 459
16.2.2获取地址 460
16.3套接字 461
16.3.1套接字Socket 461
16.3.2客户端的套接字对象 461
16.3.3 ServerSocket类 461
16.3.4把套接字连接放在一个线程中 464
16.4 UDP数据报 468
16.4.1发送数据包 468
16.4.2接收数据包 469
16.5广播数据报 472
16.6 Java远程调用 475
16.6.1远程对象 476
16.6.2 RMI的设计细节 476
16.7小结 479
习题16 479
第17章 基于嵌入式数据库的单词字典 480
17.1设计要求 480
17.2数据模型 481
17.3简单测试 488
17.4视图设计 490
17.5 GUI程序 502
17.6程序发布 502
附录 本书视频对应二维码汇总表 505
参考文献 509