第 1章 初识Java
学习目标 .........................................2
任务引导 .........................................2
相关知识 .........................................2
1.1 计算机语言........................... 2
1.1.1 机器语言............................2
1.1.2 汇编语言............................3
1.1.3 高级语言............................3
1.2 Java发展史........................... 5
1.2.1 Java的诞生 ........................5
1.2.2 JDK 1.0发布 ......................5
1.2.3 Java 2问世 .........................5
1.2.4 JavaSE 5.0发布 ..................6
1.2.5 JDK 7.0发布 ......................6
1.2.6 JDK 8.0发布 ......................6
1.2.7 JDK 9.0发布 ......................7
1.2.8 JDK 10.0发布 ....................7
1.3 Java的特点........................... 7
1.3.1 Java是面向对象的 ............8
1.3.2 Java是平台无关的 ............8
1.3.3 Java语言是健壮的 ............8
1.4 Java程序工作原理............... 9
1.4.1 Java虚拟机 ........................9
1.4.2 垃圾回收机制..................11
1.5 Java SE的结构 ....................11
1.6 标识符和关键字................. 12
1.6.1 标识符..............................12
1.6.2 关键字..............................13
1.7 Java注解............................. 13
1.7.1 Java注解 ...........................13
1.7.2 内建注解..........................15
1.7.3 自定义注解......................20
1.8 变量和常量......................... 26
1.8.1 变量..................................26
1.8.2 常量..................................27
1.9 Java数据类型..................... 27
1.9.1 Java数据类型概述 ..........27
1.9.2 整型..................................29
1.9.3 浮点型..............................30
1.9.4 字符型..............................31
1.9.5 布尔型..............................32
1.9.6 基本数据类型转换..........32
1.10 成员变量和局部变量....... 34
1.11 Java运算符 ....................... 36
1.11.1 算术运算符 ....................36
1.11.2 逻辑运算符 ....................39
1.11.3 位运算符 ........................40
1.12 Java表达式....................... 42
1.12.1 Java表达式概述 ............42
1.12.2 表达式的运算顺序........43
任务实施 .......................................44
1.13 任务1 开发环境搭建....... 44
1.14 任务2 注解应用............... 46
1.14.1 子任务1 内建注解应用................................46
1.14.2 子任务2 自定义注解与元注解应用....................46
1.15 任务3 Java简易程序开发 .................................. 46
1.15.1 子任务1 第 一个Java程序................................46
1.15.2 子任务2 工程师月薪计算................................51
拓展训练 .......................................52
“瑞达系统”获取用户输入....52
综合训练 .......................................56
第 2章 控制结构、方法与数组应用
学习目标 .......................................59
任务引导 .......................................59
相关知识 .......................................59
2.1 if语句 .................................. 59
2.1.1 if语句的语法 ...................60
2.1.2 嵌套if语句 .......................65
2.2 switch语句 .......................... 67
2.2.1 switch语句概述 ...............67
2.2.2 switch语句的使用 ...........68
2.3 循环语句............................. 70
2.3.1 while循环 .........................71
2.3.2 do...while循环 ..................74
2.3.3 for循环 .............................75
2.3.4 双重for循环 .....................77
2.3.5 跳转语句..........................79
2.4 方法..................................... 79
2.4.1 Java方法概述 ..................79
2.4.2 Java方法的使用 ..............84
2.4.3 方法递归调用..................86
2.5 数组..................................... 87
2.5.1 一维数组..........................87
2.5.2 引用数据类型..................90
2.5.3 值传递与引用传递..........91
2.5.4 一维数组初始化..............95
2.6 排序算法............................. 96
2.6.1 冒泡排序..........................96
2.6.2 插入排序..........................97
2.7 二维数组............................. 98
2.7.1 二维数组简介..................98
2.7.2 二维数组的使用..............99
任务实施 .....................................101
2.8 任务1 控制结构应用....... 101
2.8.1 子任务1 商城送礼........101
2.8.2 子任务2 学习班结业....101
2.8.3 子任务3 功能模块跳转................................102
2.9 任务2 方法应用............... 106
2.10 任务3 数组应用..............115
2.10.1 子任务1 分数数列前20项求和..................115
2.10.2 子任务2 杨辉三角形打印..............................116
拓展训练 .....................................117
“瑞达系统”删除和查询模块实现..............................117
综合训练 .....................................124
第3章 类与对象应用
学习目标 .....................................127
任务引导 .....................................127
相关知识 .....................................128
3.1 类和对象概述................... 128
3.1.1 面向过程与面向对象....128
3.1.2 类和对象的概念............129
3.2 Java类............................... 131
3.2.1 Java类的定义 ................131
3.2.2 Java类的创建和使用 ....132
3.2.3 Java类的简单运用 ........135
3.2.4 封装................................141
3.3 构造方法........................... 144
3.3.1 构造方法解决问题........144
3.3.2 构造方法的使用............145
3.4 对象初始化过程............... 147
3.4.1 初始化块........................148
3.4.2 对象初始化内存结构....149
3.5 重载................................... 151
3.5.1 重载的定义....................151
3.5.2 重载方法的使用............151
3.6 抽象和封装....................... 154
3.6.1 类抽象............................154
3.6.2 类封装............................155
3.6.3 方法的实现....................162
3.7 继承................................... 163
3.7.1 继承的概念....................164
3.7.2 继承的使用....................165
3.7.3 继承和访问权限............169
3.7.4 方法重写........................170
3.7.5 属性覆盖........................172
3.7.6 继承中的初始化............174
3.8 多态................................... 176
3.8.1 向上转型........................176
3.8.2 向下转型........................179
3.9 包和访问控制................... 181
3.9.1 Java包 ............................182
3.9.2 引用包............................183
3.9.3 访问权限........................186
3.9.4 static关键字 ...................190
3.10 抽象类............................. 195
3.10.1 抽象类的概念..............195
3.10.2 抽象类的使用..............195
3.10.3 抽象类的特征..............198
3.11 接口 ................................. 199
3.11.1 接口的概念 ..................199
3.11.2 接口的使用 ..................202
3.11.3 接口的特征 ..................205
3.11.4 接口的应用 ..................210
任务实施 .....................................212
3.12 任务1 类和对象应用..... 212
3.12.1 子任务1 封装学生类和老师类..........................212
3.12.2 子任务2 构造方法初始化学生类和老师类......213
3.12.3 子任务3 重载学习方法..............................213
3.13 任务2 包和访问控制应用 ................................ 213
3.13.1 子任务1 导入类和包..............................213
3.13.2 子任务2 产生随机数..........................213
3.13.3 子任务3 static关键作用范围测试......................213
3.14 任务3 抽象类与接口应用 ................................ 214
3.14.1 子任务1 继承角度实现租车系统......................214
3.14.2 子任务2 多态角度实现租车系统......................214
3.14.3 子任务3 抽象类方式实现人与中国人的关系..............................214
3.14.4 子任务4 接口方式实现打印机工作过程..........214
拓展训练 .....................................214
使用接口优化“租车系统” ..214
综合训练 .....................................215
第4章 反射机制与常用类应用
学习目标 .....................................219
任务引导 .....................................219
相关知识 .....................................219
4.1 Java反射机制................... 219
4.2 Class类 ............................. 222
4.2.1 Class类概述 ...................222
4.2.2 Class类常用方法 ...........224
4.3 获取类信息....................... 225
4.3.1 获取方法........................225
4.3.2 获取属性........................229
4.3.3 获取构造方法................232
4.4 动态调用........................... 235
4.4.1 创建对象........................236
4.4.2 修改属性........................239
4.4.3 调用方法........................240
4.5 操作动态数组................... 242
4.5.1 操作一维动态数组........242
4.5.2 操作多维动态数组........244
4.6 Java API文档的使用 ....... 245
4.7 String类 ............................ 246
4.7.1 String类的概念 ..............247
4.7.2 String类的使用 ..............249
4.8 StringBuffer类 ................. 255
4.8.1 StringBuffer类的使用 ...255
4.8.2 StringBuffer内存模型 ...257
4.9 异常处理........................... 257
4.9.1 异常概述........................258
4.9.2 异常处理........................262
4.9.3 异常使用注意事项........270
4.9.4 抛出异常........................274
4.9.5 自定义异常类................280
任务实施 .....................................283
4.10 任务1 反射机制应用..... 283
4.10.1 子任务1 Class类常用
操作测试......................283
4.10.2 子任务2 方法结构
获取..............................283
4.10.3 子任务3 动态创建对象、修改属性和动态调用方法..............................283
4.10.4 子任务4 动态数组实现不定员班级信息管理........................283
4.11 任务2 常用类应用 ......... 284
4.11.1 子任务1 计算字符串中子字符串出现的次数..............................284
4.11.2 子任务2 完成Java工程师注册的功能......285
4.11.3 子任务3 字符串分割..............................286
4.11.4 子任务4 使用Java API查找String类的方法并使用..........................287
4.12 任务3 异常类应用......... 287
4.12.1 子任务1 根据现有程序添加合适的异常处理代码..............................287
4.12.2 子任务2 手工抛出一个算数异常......................288
拓展训练 .....................................289
完成提交论文的功能..............289
综合训练 .....................................291
第5章 数据结构应用
学习目标 .....................................294
任务引导 .....................................294
相关知识 .....................................294
5.1 数据逻辑结构................... 294
5.1.1 数据基本概念................294
5.1.2 线性结构........................295
5.1.3 树结构............................296
5.1.4 图结构............................297
5.2 数据存储结构................... 298
5.2.1 顺序存储结构................298
5.2.2 链式存储结构................299
5.3 线性结构........................... 299
5.3.1 线性表的存储结构........299
5.3.2 线性表............................301
5.3.3 栈....................................305
5.3.4 队列................................308
5.4 查找................................... 309
5.4.1 无序查找........................309
5.4.2 有序查找—二分查找................................310
5.5 排序................................... 312
5.5.1 选择排序........................313
5.5.2 快速排序........................314
任务实施 .....................................317
5.6 任务 数据结构应用......... 317
5.6.1 子任务1 数组方式实现线性表基本操作............317
5.6.2 子任务2 数组方式实现栈基本操作....................318
5.6.3 子任务3 数组方式实现队列基本操作....................318
5.6.4 子任务4 二分查找指定数据................................318
5.6.5 子任务5 对指定数据实现选择排序................318
拓展训练 .....................................318
对指定数据实现快速排序......318
综合训练 .....................................319
第6章 集合应用
学习目标 .....................................321
任务引导 .....................................321
相关知识 .....................................321
6.1 集合框架........................... 321
6.1.1 集合引入........................321
6.1.2 Collection接口框架 .......322
6.1.3 Map接口框架 ................324
6.2 Set接口 ............................. 324
6.2.1 Set接口方法 ..................324
6.2.2 HashSet使用 ..................325
6.2.3 TreeSet使用 ...................326
6.2.4 Comparable接口 ............327
6.3 Iterator迭代器 ................. 329
6.3.1 Iterator接口方法 ............329
6.3.2 Iterator使用 ....................330
6.3.3 增强for循环 ...................332
6.4 List接口 ............................ 333
6.4.1 List接口方法 .................333
6.4.2 ArrayList使用 ................334
6.4.3 LinkedList使用 ..............336
6.5 Map接口........................... 336
6.5.1 HashMap使用 ................336
6.5.2 Map接口方法 ................338
6.6 工具类............................... 338
6.6.1 Collections工具类常用方法................................338
6.6.2 Collections工具类使用 ...340
6.6.3 Comparable与Comparator ....................341
6.6.4 Arrays工具类使用 .........345
6.7 自动拆箱和装箱............... 347
6.7.1 自动拆箱和装箱概念....347
6.7.2 自动拆箱和装箱使用....348
6.8 泛型................................... 349
任务实施 .....................................351
6.9 任务1 集合应用............... 351
6.9.1 子任务1 实现学生信息存放与删除....................351
6.9.2 子任务2 改写“租车系统”,逆序输出车辆名称................................351
6.9.3 子任务3 为“租车系统”增加附加车辆信息功能................................351
6.9.4 子任务4 域名与内容关联存储实现................352
6.10 任务2 集合工具类应用 ................................ 352
6.10.1 子任务1 利用工具类实现学生信息比较........352
6.10.2 子任务2 泛型方式实现“租车系统”................352
拓展训练 .....................................352
对“瑞达系统”进行结构优化和功能完善..................................352
综合训练 .....................................353
第7章 文件操作应用
学习目标 .....................................355
任务引导 .....................................355
相关知识 .....................................355
7.1 File类 ................................ 355
7.1.1 File类构造方法 .............355
7.1.2 File类使用 .....................357
7.1.3 静态导入........................359
7.1.4 获取目录和文件............360
7.2 字节流和字符流............... 362
7.2.1 字节流............................363
7.2.2 字符流............................366
7.3 其他流............................... 369
7.3.1 缓冲流............................369
7.3.2 字节流转换为字符流....371
7.3.3 数据流............................372
7.4 XML解析 ......................... 374
7.4.1 XML概述 .......................374
7.4.2 XML解析 .......................378
任务实施 .....................................385
7.5 任务1 文件基本操作应用 .................................. 385
7.5.1 子任务1 获取目录和文件路径........................385
7.5.2 子任务2 字符流方式实现文件复制................385
7.5.3 子任务3 数据流方式存取车辆信息....................385
7.6 任务2 XML文件操作应用 .................................. 385
7.6.1 子任务1 XML方式存放车辆信息........................385
7.6.2 子任务2 解析XML车辆信息................................386
拓展训练 .....................................386
为“租车系统”增加信息保存功能..................................386
综合训练 .....................................387
第8章 线程应用
学习目标 .....................................389
任务引导 .....................................389
相关知识 .....................................389
8.1 多线程............................... 389
8.1.1 线程引入........................389
8.1.2 多线程优势....................390
8.1.3 线程状态........................392
8.2 创建和使用线程............... 393
8.2.1 创建线程类....................393
8.2.2 多线程使用....................394
8.3 线程控制........................... 396
8.3.1 线程控制方法................397
8.3.2 终止线程........................398
8.3.3 线程等待和中断等待................................400
8.3.4 等待其他线程完成........402
8.3.5 设置线程优先级............404
8.3.6 守护线程........................407
8.4 共享数据........................... 408
8.4.1 数据不一致....................408
8.4.2 控制共享数据................410
8.4.3 多线程同步....................412
8.5 线程死锁和协作............... 417
8.5.1 线程死锁........................417
8.5.2 线程协作........................419
任务实施 .....................................424
8.6 任务 线程应用................. 424
8.6.1 子任务1 多线程实现输出................................424
8.6.2 子任务2 线程等待与中断方式实现计数........425
8.6.3 子任务3 多线程同步计数................................425
拓展训练 .....................................425
完成吃热狗活动......................425
综合训练 .....................................426
第9章 网络编程应用
学习目标 .....................................428
任务引导 .....................................428
相关知识 .....................................428
9.1 计算机网络....................... 428
9.1.1 主要功能和分类............428
9.1.2 网络协议........................430
9.1.3 网络分层模型................430
9.1.4 TCP/IP协议简介 ............432
9.1.5 数据封装和解封............435
9.2 IP地址和域名................... 436
9.2.1 IP地址 ............................436
9.2.2 IP地址类型 ....................436
9.2.3 子网掩码........................438
9.2.4 域名................................439
9.3 网络配置........................... 439
9.3.1 配置和查看....................439
9.3.2 常用TCP/IP网络命令....440
9.4 Java与网络....................... 441
9.4.1 IP地址类 ........................442
9.4.2 URL类............................444
9.4.3 URLConnection类 .........446
9.5 Socket编程 ....................... 449
9.5.1 基于TCP的Socket编程................................449
9.5.2 基于UDP的Socket编程................................454
任务实施 .....................................456
9.6 任务1 IP地址配置与ping测试 .................................. 456
9.7 任务2 网络编程常用类测试 .................................. 457
拓展训练 .....................................457
客户端与服务器信息交互......457
综合训练 .....................................458
第 10章 软件测试应用
学习目标 .....................................460
任务引导 .....................................460
相关知识 .....................................460
10.1 软件测试......................... 460
10.1.1 软件测试概念..............460
10.1.2 测试与调试..................461
10.2 软件缺陷......................... 462
10.2.1 确定软件缺陷..............462
10.2.2 有效记录缺陷..............463
10.3 缺陷报告处理................. 465
10.3.1 缺陷报告处理流程......465
10.3.2 缺陷报告详细内容......466
10.4 软件测试流程................. 467
10.4.1 需求分析阶段..............467
10.4.2 设计和编码阶段..........468
10.4.3 集成、系统和验收测试..............................469
10.4.4 单元、集成、系统和验收测试......................469
10.5 软件测试分类................. 471
10.5.1 黑盒测试和白盒测试..............................471
10.5.2 手工测试和自动测试..............................472
10.6 JUnit初探 ....................... 472
10.6.1 “加”类JUnit 4测试 ...473
10.6.2 “计算器”类测试......474
10.6.3 JUnit 4知识拓展 ..........479
任务实施 .....................................483
10.7 任务 JUnit测试Add方法 .................................. 483
拓展训练 .....................................483
使用JUnit 4对计算器类单元测试..................................483
综合训练 .....................................484