第1章 走进Java 1
1.1 Java编程语言概述 1
1.1.1 Java的历史 1
1.1.2 Java的发展历程 2
1.1.3使用场景和优势 3
1.1.4 Java 6和Java 8 4
1.2如何学好Java 5
1.2.1 Java语言特性 5
1.2.2第一个Java程序 6
1.2.3学好Java的建议 7
1.3 Java API文档 8
1.4 Web项目介绍 9
1.5网站开发基本流程 10
1.6小结 11
1.7知识拓展 11
1.7.1常用软件资源 11
1.7.2 Java开发社区 12
1.7.3 Java 10 13
第2章 Java配置安装和IDE介绍 14
2.1 Windows下搭建Java环境 14
2.1.1 JDK下载与安装 14
2.1.2配置JDK环境 16
2.2 Mac下搭建Java环境 19
2.3 Java IDE——Eclipse 19
2.3.1 Eclipse下载与安装 20
2.3.2 Eclipse使用 23
2.4小结 26
2.5知识拓展 26
第3章 Java基础语法 29
3.1 Java主类结构 29
3.1.1 Java包 30
3.1.2类的成员变量和局部变量 31
3.1.3访问权限修饰词 32
3.1.4编写主方法 32
3.2注释及使用场景 33
3.2.1注释文档 33
3.2.2嵌入HTML语言和标签 34
3.3基本数据类型 35
3.3.1整数类型 35
3.3.2浮点类型 41
3.3.3字符类型 44
3.3.4布尔类型 47
3.3.5引用类型对象 48
3.3.6特殊值null 49
3.4数据类型之间的转换 49
3.4.1自动转换 49
3.4.2强制转换 51
3.5常量与变量 53
3.5.1常量 53
3.5.2变量 56
3.6操作运算符 58
3.6.1算术运算符 58
3.6.2比较运算符 59
3.6.3赋值运算符 60
3.6.4递增运算符和递减运算符 62
3.6.5逻辑运算符 63
3.6.6三元运算符 64
3.6.7位运算符 65
3.6.8 instanceof运算符 66
3.6.9运算符优先级 66
3.7表达式 67
3.8小结 68
3.9知识拓展 68
3.9.1编码规范的建议 68
3.9.2 Java关键字 69
第4章 Java方法 72
4.1方法的概念 72
4.2方法定义和使用 72
4.2.1方法参数 74
4.2.2方法返回值 78
4.2.3方法类型声明 79
4.2.4命令行参数使用 80
4.3可变参数方法 81
4.4小结 83
4.5知识拓展 83
4.5.1 Java内置类和内置方法介绍 83
4.5.2有趣的方法自身调用 85
第5章 流程控制和语言结构 88
5.1条件控制语句 88
5.1.1 if和else语句 88
5.1.2 switch语句 98
5.2循环控制语句 103
5.2.1 for循环语句 103
5.2.2 while循环语句 108
5.3跳转语句 110
5.3.1 continue语句 110
5.3.2 break语句 113
5.3.3 goto语句 116
5.3.4 return语句 116
5.4小结 117
5.5知识拓展 117
第6章 字符串 119
6.1字符串String类 119
6.1.1创建字符串 119
6.1.2初始化字符串 121
6.2字符串常见操作 127
6.2.1字符串连接 127
6.2.2字符串长度 130
6.2.3查找字符串 131
6.2.4字符串替换 135
6.2.5字符串截取 139
6.2.6字符串分割 140
6.2.7字符串首尾内容判断 142
6.2.8字符串首尾去空格 143
6.2.9字符串大小写转换 144
6.2.10字符串比较 146
6.2.11字符串格式化输出 149
6.2.12其他字符串操作 154
6.3 StringBuilder类与StringBuffer类 158
6.3.1 StringBuilder类 158
6.3.2 StringBuffer类 165
6.4小结 165
6.5知识拓展 166
第7章 数组 168
7.1数组介绍 168
7.1.1什么是数组 168
7.1.2数组的构成 168
7.2数组创建 169
7.2.1数组创建方法 169
7.2.2数组索引 171
7.2.3多维数组 171
7.3数组的遍历与输出 174
7.3.1 foreach遍历 174
7.3.2 for遍历 175
7.3.3 Arrays类中的toString静态方法 176
7.4数组常见操作 177
7.4.1数组长度 177
7.4.2向数组添加元素 179
7.4.3删除数组元素 181
7.4.4删除重复数据 182
7.4.5数组查找 184
7.4.6数组排序 186
7.4.7数组复制 188
7.4.8数组比较 189
7.5小结 190
7.6知识拓展 191
第8章 正则表达式 193
8.1正则表达式介绍 193
8.2正则表达式语法 194
8.2.1普通字符 194
8.2.2字符转义 195
8.2.3元字符 196
8.2.4限定符 197
8.2.5定位符 198
8.2.6分组构造 199
8.2.7匹配模式 199
8.3 Java处理正则 200
8.3.1 java.util.regex包介绍 200
8.3.2 Pattern类 201
8.3.3 Matcher类 202
8.3.4 PatternSyntaxException类 203
8.4小结 204
8.5知识拓展 204
8.5.1贪婪与非贪婪匹配 204
8.5.2零宽断言 206
8.5.3常用正则表达式参考 207
第9章 面向对象编程 210
9.1面向对象介绍 210
9.1.1对象 212
9.1.2类 214
9.2 Java与面向对象 215
9.2.1类的声明 215
9.2.2类的实例化 217
9.2.3成员属性 218
9.2.4成员方法 219
9.2.5访问成员的属性和方法 221
9.2.6变量作用域 223
9.2.7对象的应用 226
9.2.8修饰符关键字 228
9.2.9静态常量 228
9.2.10静态变量 229
9.2.11静态方法 231
9.2.12静态代码块 232
9.3构造方法 233
9.4类的继承和多态 234
9.4.1继承 234
9.4.2多态 244
9.5高级特性 250
9.5.1 final的使用 250
9.5.2对象克隆 254
9.6抽象类与接口 266
9.6.1抽象类 266
9.6.2接口 270
9.7小结 273
9.8知识拓展 273
9.8.1 MVC设计模式 273
9.8.2单例设计模式 277
第10章 Java常用类 280
10.1包装类 280
10.1.1 Integer整型类 282
10.1.2 Double浮点型类 286
10.1.3 Boolean布尔型类 289
10.1.4 Character字符型类 292
10.1.5高精度数字类 295
10.1.6 Number数字类 296
10.1.7 Void类 296
10.2 Math类 297
10.2.1 Math类中的常量 297
10.2.2 Math类中的常见方法 297
10.2.3随机数 302
10.3枚举 304
10.3.1枚举定义 305
10.3.2枚举的常见方法 305
10.3.3枚举集合 308
10.4泛型 308
10.4.1泛型类 308
10.4.2泛型方法 310
10.5小结 311
10.6知识拓展 312
10.6.1 Java对象生命周期 312
10.6.2 Java中常用类库介绍 313
第11章 Java集合类 314
11.1什么是集合类 314
11.2 Collection接口 314
11.3 List集合 316
11.3.1 ArrayList类 316
11.3.2 LinkedList类 319
11.4 Set集合 321
11.4.1 HashSet类 321
11.4.2 TreeSet类 323
11.5 Map集合 325
11.5.1 HashMap 327
11.5.2 TreeMap 328
11.6小结 330
11.7知识拓展 330
第12章 Java反射与注解 335
12.1 Java反射 335
12.1.1 java.lang.Class类介绍 335
12.1.2获取构造方法的信息 337
12.1.3获取成员变量的信息 340
12.1.4获取方法的信息 342
12.2注解 346
12.2.1元注解 346
12.2.2内置注解介绍 347
12.2.3自定义注解 350
12.3小结 353
12.4知识拓展 353
12.4.1 Spring注解 353
12.4.2动态代理 354
第13章 Java日期和时间 357
13.1概述 357
13.2 Date类 359
13.3 Calendar类 361
13.4 DateFormat类 364
13.5 SimpleDateFormat类 366
13.6小结 369
13.7知识拓展 369
13.7.1时区划分 369
13.7.2 Unix时间戳 369
13.7.3 Java和Unix时间戳 370
第14章 Java I/O 372
14.1输入/输出流 372
14.1.1什么是流 372
14.1.2输入流 373
14.1.3输出流 376
14.1.4系统预定义流 380
14.2 File类 381
14.2.1创建File文件 381
14.2.2 File文件基本操作 381
14.3文件输入/输出流 386
14.3.1 FilelnputStream类和FileOutput-Stream类 386
14.3.2 FileReader类和FileWriter类 388
14.4缓存输入/输出流 391
14.4.1 BufferedInputStream类和Buffered-OutputStream类 391
14.4.2 BufferedReader类和BufferedWriter类 394
14.5数据输入/输出流 398
14.6 Java序列化 402
14.6.1序列化概述 402
14.6.2 ObjectOutputStream序列化 403
14.6.3 ObjectInputStream反序列化 405
14.7小结 407
14.8知识拓展 407
14.8.1使用POI类库处理Excel文件 407
14.8.2使用GZIP对文件进行压缩 411
第15章 Java异常处理 413
15.1什么是异常处理 413
15.1.1 Error系统异常 414
15.1.2 Exception抛出异常 416
15.1.3异常方法 418
15.2异常处理关键字 418
15.2.1 throw和throws关键字 418
15.2.2 try catch关键字 421
15.2.3 finally关键字 423
15.3常见异常 424
15.3.1 Null PointerException 424
15.3.2 ClassNotFoundException 426
15.3.3 NumberFormatException 426
15.3.4 Ill egalArgumentException 427
15.3.5 NoSuchMethodException 428
15.3.6 ClassC astException 429
15.4自定义异常 430
15.5小结 431
15.6知识拓展 431
第16章 多线程与并发 436
16.1 Java与线程 436
16.1.1线程基本概念 436
16.1.2 Java线程机制 437
16.2线程初始化和调用 437
16.2.1继承Thread类 437
16.2.2实现Runnable接口 441
16.2.3实现Callable和Future接口 443
16.3线程生命周期 445
16.4 Java操作线程 449
16.4.1加入线程 449
16.4.2休眠线程 450
16.4.3中断线程 451
16.5线程的同步 453
16.5.1线程安全 453
16.5.2线程同步机制 454
16.5.3线程暂停与恢复 457
16.6小结 458
16.7知识拓展 458
第17章 MySQL数据库 462
17.1 MySQL介绍 462
17.2 MySQL工具介绍 462
17.2.1 MySQL控制台客户端 462
17.2.2 MySQL Workbench软件 463
17.3数据库管理 463
17.3.1创建数据库 463
17.3.2选择数据库 464
17.3.3查看数据库 465
17.3.4修改数据库 466
17.3.5删除数据库 466
17.4字段类型 467
17.4.1数值类型 467
17.4.2字符串类型 469
17.4.3时间类型 469
17.5数据表操作 470
17.5.1创建数据表 470
17.5.2查看数据表 473
17.5.3修改数据表 474
17.5.4删除数据表 477
17.6数据库语句 478
17.6.1新增数据 478
17.6.2查询数据 478
17.6.3修改数据 479
17.6.4删除数据 480
17.6.5 replace操作 480
17.7数据表字符集 481
17.7.1查看字符集 481
17.7.2设置字符集 484
17.7.3处理乱码 485
17.8数据库索引 485
17.8.1索引介绍 485
17.8.2唯一索引 486
17.8.3普通索引 486
17.9小结 487
17.10知识拓展 487
第18章 JDBC操作MySQL数据库 491
18.1 JDBC介绍 491
18.2 JDBC中的常用类 492
18.2.1 DriverManager类 492
18.2.2 Connection接口 494
18.2.3 Statement接口 495
18.2.4 PreparedStatement接口 496
18.2.5 ResultSet接口 497
18.3 JDBC操作MySQL 499
18.3.1 JDBC创建数据表 499
18.3.2 JDBC向数据表添加数据 500
18.3.3 JDBC修改数据 503
18.3.4 JDBC删除数据 505
18.3.5 JDBC查询数据 508
18.4小结 508
18.5知识拓展 509
18.5.1 JDBC批量处理 509
18.5.2 JDBC事务回滚 511
第19章 Java中的加密技术 514
19.1加密技术概述 514
19.1.1加密技术介绍 514
19.1.2对称加密算法 516
19.1.3非对称加密算法 516
19.1.4数字签名 517
19.2 Java加密技术 518
19.2.1使用MD5加密 518
19.2.2使用SHA加密 523
19.2.3使用DES加密 524
19.2.4使用AES加密 526
19.2.5使用RSA加密 529
19.3加密技术使用场景 535
19.3.1密码存储 535
19.3.2 base64加密 535
19.4小结 538
19.5知识拓展 538
19.5.1密码学之父 538
19.5.2万维网的发展 538
19.5.3 Hash在密码学中的应用 538
19.5.4加盐算法 539
第20章 Spring实战 540
20.1 Spring概述 540
20.1.1 Spring介绍 540
20.1.2 Spring模块 541
20.2使用Spring Boot搭建RESTful服务 542
20.3使用Spring Data JPA访问数据库 545
20.4小结 551
20.5知识拓展 551