Java 从入门到项目实践(超值版) 9787302501534,730250153X

配送至
$ $ USD 美元

编辑推荐

读者对象:适合Java语言初学者以及初、中级程序员阅读,同时也可作为没有项目实践经验,但有一定JavaScript编程基础的人员阅读,还可作为正在进行软件专业毕业设计的学生以及大专院校和培训学校的参考用书。
★★学网课、练题库、测水平,微信、手机、网站多维模式信手拈来。
★★同步视频、案例源码、教学课件、海量资源、代码纠错器、在线课程一样都不少。
★★微信公众号、QQ群、教学网站等多渠道互动服务读者。
★★886套求职资源库、200个案例资源库、500学时在线课程、454节同步微视频、328个实例源代码、8套电子书资源库、7个大型项目案例、10套8大行业Java项目开发文档模板库。
★★提供教学资源库、求职资源库、面试资源库、笔试题库、职业发展资源库、案例资源库、项目资源库、软件开发模板库、编程代码优化纠错器、上机实训手册、教学用PPT课件等。

作者简介

作者:聚慕课教育研发中心
聚慕课教育研发中心,是有一家软件开发公司和线下培训机构共同组建的IT图书研发中心,具有18年的图书开发和12年软件开发经验。该研发中心有软件开发团队,一批一线软件培训讲师,高校青年教师以及学科专家团队构成。致力于IT类图书策划、组稿、及编写。我们对计算机图书市场进行科学、严谨的调查分析,紧跟高新科技,深度挖掘读者需求,整合优质作者资源,协助作者制定创作计划、确立创作思想与体例,并实时监控创作质量与进度,确保做出让读者读得懂、用的好、学的会的计算机类图书。

目录

第1篇 基础知识
第1章 步入Java编程世界——Java初探 2
◎ 本章教学微视频:8个 58分钟 2
1.1 Java简介 2
1.1.1 了解Java语言 2
1.1.2 Java的发展历史 2
1.1.3 Java的基本思想 3
1.1.4 Java的工作原理 3
1.2 搭建Java环境 4
1.2.1 什么是JDK 5
1.2.2 JDK的下载与安装 5
1.2.3 配置JDK的运行环境 9
1.2.4 测试JDK能否正常运行 12
1.3 第一个Java程序 13
1.4 选择Java开发工具 15
1.4.1 Java集成开发工具——Eclipse 15
1.4.2 下载并安装Eclipse 15
1.4.3 使用Eclipse编写Java程序 17
1.5 如何学好Java 23
1.6 就业面试解析与技巧 24
1.6.1 面试解析与技巧(一) 24
1.6.2 面试解析与技巧(二) 24

第2章 Java开发基础——Java语言入门 25
◎ 本章教学微视频:27个 135分钟 25
2.1 剖析第一个Java程序 25
2.2 Java基础语法 27
2.2.1 基本语法 27
2.2.2 Java标识符 27
2.2.3 Java关键字 28
2.2.4 Java保留字 30
2.2.5 Java分隔符 30
2.2.6 Java注释 31
2.3 数据类型 32
2.3.1 整型 34
2.3.2 浮点型 35
2.3.3 字符型 36
2.3.4 布尔型 37
2.3.5 字符串 37
2.4 数据类型的转换 38
2.4.1 自动类型转换 38
2.4.2 强制类型转换 39
2.5 常量与变量 40
2.5.1 常量 40
2.5.2 变量 41

2.5.3 变量的作用域 42
2.6 Java的运算符 43
2.6.1 算术运算符 43
2.6.2 自增自减运算符 44
2.6.3 关系运算符 45
2.6.4 逻辑运算符 46
2.6.5 赋值运算符 48
2.6.6 条件运算符 49
2.6.7 位运算符 50
2.6.8 优先级与结合性 51
2.7 就业面试解析与技巧 52
2.7.1 面试解析与技巧(一) 52
2.7.2 面试解析与技巧(二) 52
第3章 程序的运行轨迹——Java语言的流程
控制 53
◎ 本章教学微视频:14个 52分钟 53
3.1 流程控制 53
3.2 顺序结构 53
3.3 分支结构 54
3.3.1 if语句 54
3.3.2 if…else语句 55
3.3.3 if…else if…else语句 56
3.3.4 嵌套的if…else语句 57
3.3.5 switch语句 58
3.4 循环结构 59
3.4.1 while语句 59
3.4.2 do…while语句 60
3.4.3 for语句 61
3.4.4 增强for语句 62
3.5 跳转语句 63
3.5.1 break语句 63
3.5.2 continue语句 64

3.5.3 return语句 64
3.6 就业面试解析与技巧 65
3.6.1 面试解析与技巧(一) 65
3.6.2 面试解析与技巧(二) 65
第4章 主流软件开发方法——面向对象编程
入门 66
◎ 本章教学微视频:17个 100分钟 66
4.1 面向对象简介 66
4.1.1 什么是面向对象 66
4.1.2 面向对象的特点 67
4.2 类和对象 68
4.2.1 什么是类 68
4.2.2 类的方法 69
4.2.3 构造方法 70
4.2.4 认识对象 71
4.2.5 类的设计 72
4.2.6 类和对象的关系 73
4.3 对象值的传递 73
4.3.1 值传递 73
4.3.2 引用传递 74
4.4 作用域修饰符 74
4.4.1 访问修饰符 74
4.4.2 非访问修饰符 78
4.5 封装 81
4.6 继承 84
4.7 重载 87
4.8 多态 88
4.9 定义和导入包 92
4.10 就业面试解析与技巧 94
4.10.1 面试解析与技巧(一) 94
4.10.2 面试解析与技巧(二) 94

第2篇 核心应用
第5章 Java内部的秘密——内部类 96
◎ 本章教学微视频:6个 25分钟 96
5.1 创建内部类 96
5.2 链接到外部类 97
5.3 成员内部类 98
5.4 匿名内部类 99
5.5 局部内部类 99
5.6 静态内部类 100
5.7 就业面试解析与技巧 102
5.7.1 面试解析与技巧(一) 102
5.7.2 面试解析与技巧(二) 102
第6章 Java最重要的部分——抽象类与
接口 103
◎ 本章教学微视频:19个 107分钟 103
6.1 抽象类和抽象方法 103
6.1.1 认识抽象类 103
6.1.2 定义抽象类 104
6.1.3 典型应用实例 107
6.1.4 抽象方法 109
6.2 接口概述 110
6.2.1 接口声明 110
6.2.2 实现接口 111
6.2.3 接口默认方法 112
6.2.4 接口与抽象类 112
6.3 接口的高级应用 112
6.3.1 接口的多态 113
6.3.2 适配接口 113
6.3.3 嵌套接口 114
6.3.4 接口回调 115
6.4 抽象类和接口的实例 117

6.4.1 抽象类的应用实例 117
6.4.2 接口的应用实例 118
6.5 Java的集合框架 121
6.5.1 接口和实现类 121
6.5.2 Collection接口 122
6.5.3 List接口 124
6.5.4 Set接口 128
6.5.5 Map接口 131
6.6 就业面试解析与技巧 132
6.6.1 面试解析与技巧(一) 132
6.6.2 面试解析与技巧(二) 132
第7章 特殊的引用数据类型——数组与
方法 133
◎ 本章教学微视频:15个 75分钟 133
7.1 数组的概念 133
7.2 一维数组 134
7.2.1 数组的声明 134
7.2.2 初始化数组 136
7.2.3 数组的访问 137
7.3 数组的排序 138
7.3.1 冒泡排序 139
7.3.2 选择排序 140
7.4 多维数组 141
7.4.1 数组的声明 141
7.4.2 数组的内存分配 142
7.4.3 数组的元素 142
7.4.4 数组的赋值 143
7.4.5 遍历多维数组 143
7.5 对象数组 145
7.5.1 静态sort()方法 145
7.5.2 binarySearch()方法 146
7.6 数组在方法中的使用 149
7.7 就业面试解析与技巧 150
7.7.1 面试解析与技巧(一) 150
7.7.2 面试解析与技巧(二) 151
第8章 字符的另一种集合——字符串的
应用 152
◎ 本章教学微视频:19个 62分钟 152
8.1 String类的本质 152
8.2 String的API应用 154
8.2.1 String类的操作方法 154
8.2.2 字符串的基本操作 156
8.2.3 替换和去除空格操作 156
8.2.4 截取和分割操作 157
8.2.5 字符串的判断操作 158
8.2.6 字符串的转换操作 158
8.2.7 字符串的连接操作 159
8.2.8 字符串的比较操作 160
8.3 字符串解析 163
8.4 正则表达式 164
8.4.1 正则表达式语法 164
8.4.2 常用正则表达式 166
8.4.3 正则表达式的实例 167
8.5 字符串的类型转换 168
8.5.1 字符串转换为数组 169
8.5.2 基本数据类型转换为字符串 169
8.5.3 格式化字符串 170
8.6 StringBuffer与StringBuilder 172
8.6.1 认识StringBuffer与StringBuilder 172
8.6.2 StringBuilder类的创建 172
8.6.3 StringBuilder类的方法 173
8.7 就业面试解析与技巧 177
8.7.1 面试解析与技巧(一) 177
8.7.2 面试解析与技巧(二) 177
第9章 为编程插上翅膀——常用类的应用 178
◎ 本章教学微视频:12个 59分钟 178
9.1 Math类 178
9.2 Random类 179
9.3 Date类 182
9.4 Calendar类 183
9.5 Scanner类 184
9.6 DecimalFormat类 186
9.7 Enum类 187
9.8 包装类 189
9.8.1 Boolean类 189
9.8.2 Byte类 190
9.8.3 Character类 192
9.8.4 Number类 193
9.9 就业面试解析与技巧 194
9.9.1 面试解析与技巧(一) 194
9.9.2 面试解析与技巧(二) 194

第3篇 核心技术
第10章 错误的终结者——异常处理 196
◎ 本章教学微视频:7个 40分钟 196
10.1 认识异常 196
10.1.1 异常的概念 196
10.1.2 异常的分类 197
10.1.3 常见的异常 198
10.1.4 异常的使用原则 198
10.2 异常的处理 198
10.2.1 异常处理机制 198
10.2.2 使用try…catch…finally语句处理
异常 201
10.2.3 使用throws抛出异常 202

10.2.4 finally和throw 203
10.3 自定义异常 206
10.4 断言语句 207
10.5 就业面试解析与技巧 208
10.5.1 面试解析与技巧(一) 208
10.5.2 面试解析与技巧(二) 208
第11章 减少类的声明——Java中的泛型 209
◎ 本章教学微视频:8个 36分钟 209
11.1 Java与C++中的泛型 209
11.2 简单泛型 210
11.3 泛型类、方法和接口 211
11.3.1 泛型类 211
11.3.2 泛型方法 215
11.3.3 泛型接口 217
11.3.4 泛型参数 218
11.4 泛型的新特性 220
11.4.1 方法与构造方法引用 220
11.4.2 Lambda作用域 221
11.5 就业面试解析与技巧 223
11.5.1 面试解析与技巧(一) 223
11.5.2 面试解析与技巧(二) 223
第12章 自检更灵活——Java中的反射 224
◎ 本章教学微视频:11个 32分钟 224
12.1 反射概述 224
12.2 反射类 225
12.3 Class类 225
12.3.1 认识Class类 225
12.3.2 获取Class类对象 225
12.3.3 Class类常用方法 226
12.4 生成对象 228
12.4.1 无参构造方法 228
12.4.2 有参构造方法 229
12.5 Constructor类 229
12.6 Method类 230
12.7 Field类 233
12.8 数组类 235
12.9 获取泛型信息 236
12.10 就业面试解析与技巧 238
12.10.1 面试解析与技巧(一) 238
12.10.2 面试解析与技巧(二) 238
第13章 特殊的数据容器——Java中的集合 239
◎ 本章教学微视频:18个 48分钟 239
13.1 集合 239
13.1.1 集合概述 239
13.1.2 addAll()方法 240
13.1.3 removeAll()方法 240
13.1.4 containsAll()方法 241
13.1.5 retainAll()方法 242
13.1.6 toArray()方法 242
13.2 List集合 243
13.2.1 List 概述 243
13.2.2 ArrayList集合 244
13.2.3 LinkedList集合 246
13.2.4 Iterator集合 248
13.3 Set集合 248
13.3.1 HashSet集合 248
13.3.2 TreeSet集合 249
13.4 Map集合 250
13.4.1 Map集合概述 250
13.4.2 HashMap集合 251
13.4.3 TreeMap集合 253
13.4.4 Properties集合 254
13.4.5 Stack集合 256
13.4.6 Vector集合 258
13.5 就业面试解析与技巧 261
13.5.1 面试解析与技巧(一) 261
13.5.2 面试解析与技巧(二) 261
第14章 简化程序的配置——Java中的
注解 262
◎ 本章教学微视频:15个 30分钟 262
14.1 注解概述 262
14.2 系统注解 263
14.2.1 @Override 263
14.2.2 @Deprecated 264
14.2.3 @SuppressWarnings 264
14.2.4 系统注解的使用 265
14.3 自定义注解 266
14.3.1 自定义注解的定义 266
14.3.2 注解元素的值 267
14.4 元注解 269
14.4.1 @Target 269
14.4.2 @Retention 270
14.4.3 @Documented 271
14.4.4 @Inherited 271
14.5 使用反射处理注解 272
14.6 JDK 1.8新特性 274
14.6.1 多重注解 274
14.6.2 ElementType枚举类 274
14.6.3 函数式接口 275
14.7 就业面试解析与技巧 275
14.7.1 面试解析与技巧(一) 275
14.7.2 面试解析与技巧(二) 276

第4篇 高级应用
第15章 齐头并进完成任务——线程与并发 278
◎ 本章教学微视频:16个 50分钟 278
15.1 线程概述 278
15.1.1 进程 278
15.1.2 线程 279
15.2 创建线程 279
15.2.1 继承Thread类 279
15.2.2 实现Runnable接口 280
15.3 线程的状态与转换 282
15.3.1 线程状态 282
15.3.2 线程状态转换 283
15.4 线程的同步 287
15.4.1 线程安全 287
15.4.2 同步代码块 288
15.4.3 同步方法 289
15.4.4 死锁 290
15.5 线程交互 292
15.5.1 wait()和notify()方法 292
15.5.2 生产者-消费者问题 293
15.6 线程的调度 296
15.6.1 线程的优先级 297
15.6.2 线程休眠 297
15.6.3 线程让步 298
15.6.4 线程联合 300
15.7 就业面试解析与技巧 301
15.7.1 面试解析与技巧(一) 301
15.7.2 面试解析与技巧(二) 301
第16章 Java中的输入输出类型——输入输
出流 302
◎ 本章教学微视频:27个 71分钟 302
16.1 流的概念 302
16.2 文件类 303
16.2.1 文件类的常用方法 303
16.2.2 遍历目录文件 306

16.2.3 删除文件和目录 307
16.3 字节流 309
16.3.1 输入流 309
16.3.2 输出流 310
16.4 字符流 315
16.4.1 字符输入流Reader 315
16.4.2 字符输出流Writer 316
16.5 文件流 317
16.5.1 FileReader类 317
16.5.2 FileWriter类 317
16.6 字符缓冲流 318
16.6.1 缓冲输入流类 318
16.6.2 缓冲输出流类 319
16.7 打印流 321
16.7.1 PrintStream类 321
16.7.2 PrintWriter类 321
16.8 数据操作流 323
16.8.1 数据输入流 323
16.8.2 数据输出流 324
16.9 系统类System 325
16.9.1 系统标准输入System.in 326
16.9.2 系统标准输出System.out 326
16.9.3 错误信息输出System.err 327
16.10 内存流 327
16.10.1 字节数组流 327
16.10.2 字符数组流 328
16.10.3 字符串流 330
16.11 扫描流 332
16.11.1 输入各类数据 332
16.11.2 读取文件内容 334
16.12 过滤器流 334
16.13 对象序列化 335
16.13.1 序列化接口Serializable 335
16.13.2 实现序列化与反序列化 336
16.13.3 transient关键字 337
16.14 就业面试解析与技巧 338
16.14.1 面试解析与技巧(一) 338
16.14.2 面试解析与技巧(二) 339
第17章 窗口程序设计——GUI编程 340
◎ 本章教学微视频:21个 70分钟 340
17.1 认识GUI编程 340
17.2 AWT概述 341
17.3 容器类 341
17.3.1 Window类 341
17.3.2 Panel容器 342
17.4 布局管理器 342
17.4.1 布局管理器概述 343
17.4.2 流式布局管理器 343
17.4.3 边界布局管理器 344
17.4.4 网格布局管理器 345
17.4.5 网格包布局管理器 346
17.4.6 卡片布局管理器 349
17.4.7 自定义布局 350
17.5 AWT事件处理 351
17.5.1 事件处理机制 351
17.5.2 事件适配器 353
17.6 常用事件 354
17.6.1 窗体事件 354
17.6.2 鼠标事件 355
17.6.3 键盘事件 357
17.6.4 动作事件 357
17.6.5 选项事件 360
17.6.6 焦点事件 362
17.6.7 文档事件 363

17.7 AWT绘图 363
17.8 就业面试解析与技巧 365
17.8.1 面试解析与技巧(一) 365
17.8.2 面试解析与技巧(二) 366
第18章 图形界面设计——Swing编程 367
◎ 本章教学微视频:27个 79分钟 367
18.1 Swing概述 367
18.2 常用面板 368
18.2.1 JPanel面板 368
18.2.2 JScrollPane面板 370
18.3 Swing常用控件 372
18.3.1 JFrame 372
18.3.2 JLabel 373
18.3.3 JButton 374
18.3.4 JTextArea 375
18.3.5 JTextField 377
18.3.6 JPasswordField 379
18.3.7 JRadioButton 380
18.3.8 JCheckBox 382
18.3.9 JComboBox 383
18.3.10 JList 384
18.4 表格组件 386
18.4.1 创建表格 386
18.4.2 操作表格 389
18.5 组件面板 391
18.5.1 分割面板 391
18.5.2 选项卡面板 394
18.6 菜单组件 396
18.6.1 创建菜单栏 396
18.6.2 下拉式菜单 397
18.6.3 弹出式菜单 401
18.7 对话框 403
18.7.1 消息对话框 403
18.7.2 输入对话框 403
18.7.3 确认对话框 404
18.7.4 颜色对话框 404
18.7.5 自定义对话框 405
18.8 工具栏 405
18.9 进度条 406
18.10 就业面试解析与技巧 408
18.10.1 面试解析与技巧(一) 408
18.10.2 面试解析与技巧(二) 409
第19章 Java的网络世界——网络编程 410
◎ 本章教学微视频:10个 37分钟 410
19.1 网络编程基础 410
19.1.1 IP地址和端口 410
19.1.2 InetAddress 412
19.1.3 UDP和TCP 413
19.2 TCP网络编程 414
19.2.1 ServerSocket 414
19.2.2 Socket 416
19.2.3 多线程的TCP网络编程 418
19.3 UDP网络编程 424
19.3.1 DatagramPacket 424
19.3.2 DatagramSocket 425
19.3.3 UDP网络编程 426
19.4 广播数据报 428
19.5 就业面试解析与技巧 430
19.5.1 面试解析与技巧(一) 430
19.5.2 面试解析与技巧(二) 430
第20章 通向数据之路——JDBC编程 431
◎ 本章教学微视频:22个 32分钟 431
20.1 JDBC概述 431
20.2 JDBC常用API 432
20.2.1 Driver接口 433
20.2.2 DriverManager类 433
20.2.3 Connection接口 433
20.2.4 Statement接口 434
20.2.5 PreparedStatement接口 434
20.2.6 CallableStatement接口 435
20.2.7 ResultSet接口 435
20.3 使用JDBC连接数据库 438
20.3.1 加载JDBC驱动程序 438
20.3.2 创建数据库连接 438
20.3.3 获取Statement对象 438
20.3.4 执行SQL语句 439
20.3.5 获得执行结果 439
20.3.6 关闭连接 439
20.4 数据库的基本操作 441
20.4.1 查询数据 441
20.4.2 插入数据 443
20.4.3 更新数据 445
20.4.4 删除数据 447
20.4.5 编译预处理 449
20.5 事务处理 450
20.5.1 事务概述 451
20.5.2 常用事务处理方法 451
20.6 就业面试解析与技巧 452
20.6.1 面试解析与技巧(一) 452
20.6.2 面试解析与技巧(二) 452

第5篇 行业应用
第21章 Java在游戏开发行业中的应用 454
◎ 本章教学微视频:18个 61分钟 454
21.1 案例运行及配置 454
21.1.1 开发及运行环境 454
21.1.2 系统运行 455
21.1.3 项目开发及导入步骤 457
21.2 系统分析 461
21.2.1 系统总体设计 461
21.2.2 系统界面 463
21.2.3 游戏规则设计 463
21.3 功能分析 463
21.3.1 系统主要功能 463
21.3.2 系统文件结构 463
21.4 系统主要功能实现 464
21.4.1 棋盘界面开发 464
21.4.2 保存棋局数组 465
21.4.3 绘制棋子 465
21.4.4 棋子连接数量函数 466
21.4.5 判断胜负 467
21.4.6 功能按钮的实现 468
21.5 项目知识拓展 472
21.5.1 Swing编程 472
21.5.2 ImageIO类的使用 473
21.5.3 处理屏幕闪烁问题 473
第22章 Java在金融行业开发中的应用 474
◎ 本章教学微视频:17个 83分钟 474
22.1 案例运行及配置 474
22.1.1 开发及运行环境 474
22.1.2 系统运行 474
22.1.3 项目开发及导入步骤 479
22.2 系统分析 485
22.2.1 系统总体设计 485
22.2.2 系统界面设计 487
22.2.3 系统安全策略 488
22.2.4 系统性能要求 488
22.3 功能分析 488
22.3.1 系统主要功能 488
22.3.2 系统文件结构图 489
22.4 系统主要功能的实现 489
22.4.1 数据库与数据表设计 489
22.4.2 实体类创建 494
22.4.3 数据访问类 496
22.4.4 控制分发及配置 497
22.4.5 业务数据处理 501
22.5 项目知识拓展 508
22.5.1 Struts架构 508
22.5.2 MySQL安装管理 508
22.5.3 Navicat for MySQL安装 515
第23章 Java在移动互联网行业开发中的
应用 519
◎ 本章教学微视频:14个 55分钟 519
23.1 案例运行及配置 519
23.1.1 开发及运行环境 519
23.1.2 系统运行 520
23.1.3 项目开发及导入步骤 525
23.2 系统分析 530
23.3 功能分析 530
23.3.1 系统主要功能 530
23.3.2 系统文件结构 531
23.4 系统主要功能实现 531
23.4.1 数据库与数据表设计 531
23.4.2 实体类创建 533
23.4.3 数据访问类 535
23.4.4 流程控制 536
23.4.5 数据库操作 539
23.4.6 业务数据处理 543
23.5 项目知识拓展 548
23.5.1 MySQL数据库管理常用
命令 548
23.5.2 移动互联网开发设计需要考虑的
主要问题 549
第24章 Java在教育行业开发中的应用 550
◎ 本章教学微视频:17个 80分钟 550
24.1 案例运行及配置 550
24.1.1 开发及运行环境 550
24.1.2 系统运行 551
24.1.3 项目开发及导入步骤 555
24.2 系统分析 560
24.2.1 系统总体设计 560
24.2.2 系统界面设计 561
24.3 功能分析 561
24.3.1 系统主要功能 561
24.3.2 系统文件结构 562
24.4 系统主要功能实现 562
24.4.1 数据库与数据表设计 562
24.4.2 实体类创建 568
24.4.3 数据库访问类 570
24.4.4 控制器实现 571
24.4.5 业务数据处理 577
24.4.6 Spring MVC的配置 579
24.4.7 MyBatis的配置 579
24.5 项目知识拓展 580
24.5.1 Oracle的安装 580
24.5.2 Spring MVC简介 583
24.5.3 MyBatis框架的使用 583

第6篇 项目实践
第25章 项目实践入门阶段——雇员信息管理
系统开发 586
◎ 本章教学微视频:12个 43分钟 586
25.1 案例运行及配置 586
25.1.1 开发及运行环境 586
25.1.2 系统运行 586
25.1.3 项目开发及导入步骤 592
25.2 系统分析 596
25.3 功能分析 596
25.3.1 系统主要功能 596
25.3.2 系统文件结构 597
25.4 系统主要功能实现 597
25.4.1 数据库与数据表设计 597
25.4.2 数据库连接——Conn.java 599
25.4.3 程序入口——Main.java 602
25.4.4 业务数据处理——Do.java 604
25.5 项目知识拓展 608
25.5.1 使用开发框架的优点 608
25.5.2 学习本项目意义 608
第26章 项目实践提高阶段——私教优选系统
开发 609
◎ 本章教学微视频:14个 60分钟 609
26.1 案例运行及配置 609
26.1.1 开发及运行环境 609
26.1.2 系统运行 610
26.1.3 项目开发及导入步骤 614
26.2 系统分析 620
26.2.1 系统总体设计 620
26.2.2 系统界面设计 621
26.3 功能分析 621
26.3.1 系统主要功能 621
26.3.2 系统文件结构 621
26.4 系统主要功能实现 622
26.4.1 数据库与数据表设计 622
26.4.2 实体类创建 625
26.4.3 数据访问类 628
26.4.4 控制分发及配置 628
26.4.5 业务数据处理 630
26.5 项目知识拓展 631
26.5.1 POJO的特点 631
26.5.2 POJO与JavaBean的区别 631
第27章 项目实践高级阶段——在线购物系统
前端开发 632
◎ 本章教学微视频:14个 77分钟 632
27.1 案例运行及配置 632
27.1.1 开发及运行环境 632
27.1.2 系统运行 633
27.1.3 项目开发及导入步骤 637
27.2 系统分析 643
27.2.1 系统总体设计 643
27.2.2 系统界面设计 643
27.3 功能分析 644
27.3.1 系统主要功能 644
27.3.2 系统文件结构 644
27.4 系统主要功能实现 645
27.4.1 数据库与数据表设计 645
27.4.2 实体类创建 648
27.4.3 数据库访问类 649
27.4.4 控制器实现 650
27.4.5 业务数据处理 653
27.5 项目知识拓展 654
27.5.1 Java项目打包发行 654
27.5.2 Java开发注释的作用 658
第28章 软件工程师必备素养与技能 659
◎ 本章教学微视频:29个 47分钟 659
28.1 软件工程师的基本专业素养 659
28.1.1 有计算机基础知识及能力 660
28.1.2 熟练掌握一门以上编程语言 660
28.1.3 熟悉计算机数据存储过程 660
28.1.4 有较强的英语阅读和写作能力 660
28.1.5 有软件开发及测试环境搭建能力 660
28.1.6 熟悉软件测试基本理论及任务
分配 661
28.2 软件工程师的个人素养 661
28.2.1 语言表达及沟通能力 661
28.2.2 过硬的心理素质 661
28.2.3 责任心与自信心 661
28.2.4 团队协作能力 662
28.3 项目开发流程 662
28.3.1 策划阶段 662
28.3.2 需求分析阶段 663
28.3.3 开发阶段 663
28.3.4 编码阶段 664
28.3.5 系统测试阶段 664
28.3.6 系统验收阶段 664
28.3.7 系统维护阶段 664
28.4 项目开发团队 664
28.4.1 项目开发团队构建 665
28.4.2 项目开发团队要求 665
28.5 项目的实际开发过程 666
28.5.1 可行性分析 666
28.5.2 项目风险评估 667
28.5.3 项目过程定义 667
28.5.4 确定项目开发工具 667
28.5.5 项目开发 667
28.5.6 项目测试验收 667
28.5.7 项目过程总结 667
28.6 项目规划常见问题及解决办法 667
28.6.1 如何满足客户需求 667
28.6.2 如何控制项目进度 668
28.6.3 如何控制项目预算 668

序言

丛书说明
本套“软件开发魔典”系列图书,是专门为编程初学者量身打造的编程基础学习与项目实践用书,由聚慕课教育研发中心组织编写。
本丛书针对“零基础”和“入门”级读者,通过案例引导读者深入技能学习和项目实践。为满足初学者在基础入门、扩展学习、编程技能、行业应用、项目实践5个方面的职业技能需求,特意采用“基础知识→核心应用→核心技术→高级应用→行业应用→项目实践”的结构和“由浅入深,由深到精”的学习模式进行讲解。
读万卷书,不如行万里路;行万里路,不如阅人无数;阅人无数,不如有高人指路。这句话道出了引导与实践对于学习知识的重要性。本丛书始于基础,结合理论知识的讲解,从项目开发基础入手,逐步引导读者进行项目开发实践,深入浅出地讲解Java语言软件编程的各项技术和项目实践技能。本丛书的目的是多角度、全方位地帮助读者快速掌握软件开发技能,为读者构建从高校到社会与企业的就职桥梁,让有志于从事软件开发的读者轻松步入职场。
……
本书内容
本书分为6篇28章。
第1篇“基础知识”包括第1~4章,主要讲解Java初探、Java语言入门、Java语言的流程控制以及面向对象编程等基础知识,使读者能快速掌握Java语言,为后面更好地学习Java编程打下坚实基础。
第2篇“核心应用”包括第5~9章,主要讲解Java的内部类、抽象类与接口、数组与方法、字符串以及常用类的应用等核心应用。通过本篇的学习,读者将对Java编程的核心应用有更深入的理解,编程能力会有进一步提高。

第3篇“核心技术”包括第10~14章,主要讲异常处理、Java中的泛型、Java中的反射、Java中的集合以及Java中的注解等核心技术。学完本篇,读者在Java深入开发、程序异常与安全处理等方面将具有较高的水平。
第4篇“高级应用”包括第15~20章,主要讲解Java线程与并发、输入输出流、GUI编程、Swing编程、网络编程以及JDBC编程等高级应用。学好本篇可以极大地扩展读者Java编程的高级应用能力。
第5篇“行业应用”包括第21~24章,主要讲解Java语言在游戏开发行、金融、移动互联网、教育行业开发中的应用。学习完本篇,读者能为日后进行软件开发积累行业开发经验。
第6篇“项目实践”包括第25~28章,通过雇员信息管理系统开发、私教优选系统开发、在线购物系统前端开发等项目实践,另外有特意补充了软件工程师必备素养与技能知识。通过本篇,读者将完整地体验Java软件开发实践,为自己的职业生涯奠定良好的实践基础。
读者在系统学习了本书后可以掌握Java语言基础知识、全面的前端程序开发能力、优良的团队协作技能和丰富的项目实践经验。我们的目标就是让初学者、应届毕业生快速成长为一名合格的初级程序员,通过演练积累项目开发经验和团队合作技能,在未来的职场中有一个高的起点,并能迅速融入软件开发团队中。
本书特色
1. 结构科学,自学更易
本书在内容组织和范例设计中充分考虑到初学者的特点,由浅入深,循序渐进……。
2. 视频讲解,细致透彻
为降低学习难度,提高学习效率。本书录制了同步微视频(模拟培训班模式),通过视频除了能轻松学会专业知识外,还能获取老师的软件开发经验。使学习变得更轻松有效。
3. 超多、实用、专业的范例和实践项目
本书结合实际工作中的应用范例逐一讲解Java语言的各种知识和技术,在行业应用和项目实战两篇中更以7个项目的实践来总结本书前20章介绍的知识和技能,使您在实践中掌握知识,轻松拥有项目开发经验。
4. 随时检测自己的学习成果
每章首页中,均提供了【学习指引】和【重点导读】,以指导读者重点学习及学后检查;章后的【就业面试解析与技巧】根据当前最新求职面试(笔试)题精选而成,读者可以随时检测自己的学习成果,做到融会贯通。
5. 作者创作团队和技术支持
本书由聚慕课研发中心编著和提供在线服务。您在学习过程中遇到任何问题,均可登录网站或加入图书读者(技术支持)QQ群进行提问,作者和资深程序员将为您在线答疑。
本书超值王牌资源库
本书附赠了极为丰富的超值王牌资源库,具体内容如下:
(1)王牌资源1:随赠本书“配套学习与教学”资源库,提升读者的Java语言学习效率。
? 本书同步454节教学微视频录像(扫描二维码观看),总时长38学时。
? 本书中7个大型项目案例以及328个实例源代码。
? 本书配套上机实训指导手册及本书的教学PPT课件。
(2)王牌资源2:随赠“职业成长”资源库,突破读者职业规划与发展瓶颈。
? 求职资源库:206套求职简历模板库、600套毕业答辩模板库与80套学术开题报告模板库。
? 面试资源库:程序员面试技巧、100例常见面试(笔试)题库、道求职常见面试(笔试)真题与解析。
? 职业资源库:100例常见错误及解决方案、210套岗位竞聘模板、Java软件开发技巧查询手册、程序员职业规划手册、开发经验及技巧集、软件工程师技能手册。
(3)王牌资源3:随赠“Java软件开发魔典”资源库,拓展读者学习本书的深度和广度。
? 120套Java经典案例库、80套大型完整Java项目案例库、10套8大行业Java项目开发文档模板库。
? 编程水平测试系统:计算机水平测试、编程水平测试、编程逻辑能力测试、编程英语水平测试。
? 软件学习必备工具及电子书资源库:Java类库查询电子书、Eclipse常用快捷键电子书、Eclipse提示与技巧手册电子书、Java程序员职业规划电子书、Java Servlet API电子书、JavaScript语言参考手册电子书、Java常见错误及解决方案、Java开发经验及技巧大汇总。
(4)王牌资源4:编程代码优化纠错器。
? 本助手能让软件开发更加便捷和轻松,无须安装配置复杂的软件运行环境即可轻松运行程序代码。
? 本助手能一键格式化,让凌乱的程序代码更加规整美观。
? 本助手能对代码精准纠错,让程序查错不再难。
(5)王牌资源5:随赠在线课程(VIP会员)。可免费学习包含Python、Java、Java Web、C、JavaScript、MySQL、iOS、C#、PHP、HTML 5、C++、Linux、Linux C、ASP.NET、Android、SQL Server、Oracle等30多类500余学时的项目开发在线课程及大量免费模板。
上述资源获取及使用
注意:由于本书不配光盘,书中所用资源及上述资源均需从网络下载才能使用。
1. 资源获取
采用以下任意途径,均可获取本书所附赠的超值王牌资源库。
……
2. 使用资源
本书可通过以下途径学习和使用本书微视频和资源。
(1)通过PC端(在线)、APP端(在/离线)和微信端(在线)以及平板端(在/离线)学习本书微视频和练习考试题库。
(2)将本书资源下载到本地硬盘,根据学习需要选择使用。
(3)通过“Java从入门到项目实践(超值版)”运行系统使用。
打开下载资源包中的“Java从入门到项目实践(超值版).exe”,进入如下图所示的系统界面。
在该系统中可以获取所有附赠的超值王牌资源。
本书适合哪些读者阅读
本书非常适合以下人员阅读:
· 没有任何Java语言基础的初学者。
· 有一定的Java语言基础,想精通Java语言编程的人员。
· 有一定的Java编程基础,没有项目实践经验的人员。
· 正在进行软件专业毕业设计的学生。
· 大专院校及培训学校的老师和学生。
创作团队
本书由聚慕课教育研发中心组织编写,陈长生老师主编。参与本书编写的主要人员有王湖芳、张开保、贾文学、张翼、白晓阳、李新伟、李坚明、白彦飞、卞良、常鲁、陈诗谦、崔怀奇、邓伟奇、凡旭、高增、郭永、何旭、姜晓东、焦宏恩、李春亮、李团辉、刘二有、王朝阳、王春玉、王发运、王桂军、王平、王千、王小中、王玉超、王振、徐利军、姚玉中、于建斌、张俊锋、张晓杰、张在有等。
……

作 者

文摘

第3章
程序的运行轨迹——Java语言的流程控制
◎ 本章教学微视频:14个 52分钟

在Java中,程序之所以能够按照人们的意愿执行,主要是依靠程序的控制结构。无论多么复杂的程序,都是由这些基本的语句组成的。本章介绍Java语言的流程控制,主要内容为流程控制的3种方式——程序的顺序结构、分支结构和循环结构。

?熟悉Java程序运行的流程控制方式。
?掌握Java程序运行的顺序结构。
?掌握Java程序运行的分支结构。
?掌握Java程序运行的循环结构。
?掌握Java程序运行的跳转语句。
3.1 流程控制
Java程序的流程控制包括顺序控制、条件控制和循环控制。顺序控制是从头到尾依次执行每条语句操作。条件控制是基于条件选择执行语句,如果条件成立,则执行操作A,反之则执行操作B。循环控制又称为回路控制,是根据循环初始条件和终结要求执行循环体内的操作。
具体地讲,程序流程控制语句分为3类:分支语句,包括if语句和switch语句;循环语句,包括for语句、while语句和do…while语句;跳转语句,包括break语句、continue语句和return语句。
3.2 顺序结构
顺序结构是最简单、最常用的程序结构,只要按照解决问题的步骤写出相应的语句就行,它的执行顺序是自上而下依次执行。有一些程序并不按顺序执行语句,这个过程称为控制的转移,它涉及了另外两类程序的控制结构,即分支结构和循环结构。
3.3 分支结构
在实际的程序设计中,根据输入数据和中间结果的不同情况需要选择不同的语句执行,在这种情况下,必须根据某个变量或表达式的值做出判断,以决定执行哪些语句和跳过哪些语句不执行。Java有两种分支结构,分别是if语句和switch语句。
3.3.1 if语句
一个if语句包含一个布尔表达式和一条或多条语句。其语法格式如下:
if(布尔表达式)
{
语句//如果布尔表达式为true将执行的语句
}
如果布尔表达式的值为true,则执行if语句大括号中的语句,否则执行if语句后面的代码。if语句流程图如图3-1所示。

图3-1 if语句流程图
【例3-1】(实例文件:ch03\Chap3.1.txt)if语句应用实例。
public class Test {
public static void main(String[] args) {
int x = 10;
if (x < 20) {
System.out.print("这是 if 语句");
}
}
}
程序运行结果如图3-2所示。

图3-2 if语句应用实例
3.3.2 if…else语句
if语句后面可以跟else语句,当if语句的布尔表达式值为false时,else语句会被执行。语法格式如下:
if(布尔表达式){
语句1 //如果布尔表达式的值为true将执行的语句
}else{
语句2 //如果布尔表达式的值为false将执行的语句
}
if…else表示判断两种情况:要么满足if的条件;要么不满足if的条件,此时执行else语句。if…else语句流程图如图3-3所示。

图3-3 if…else语句流程图
【例3-2】(实例文件:ch03\Chap3.2.txt)if…else语句应用实例。
public class Test {
public static void main(String[] args) {
int x = 30;
if (x < 20) {
System.out.print("这是 if 语句");
} else {
System.out.print("这是 else 语句");
}
}
}
程序运行结果如图3-4所示。本例中若x小于20,则显示“这是if语句”;其他情况则显示“这是else语句”。x和20进行比较有3种情况,大于、小于和等于,此时的else应该包括了大于和等于两种情况,即x只要是大于或等于20就会执行else语句内的代码。

图3-4 if…else语句应用实例
3.3.3 if…else if…else语句
if语句后面可以跟else if…else语句,这种语句可以检测多种可能的情况,也被称为多条件判断语句或多分支语句。if多条件判断语句流程图如图3-5所示。

图3-5 if多条件判断语句流程图
使用if…else if…else语句的时候,需要注意下面几点:
? if语句至多有—个else语句,else语句在所有的else if语句之后。
? if语句可以有若干else if语句,它们必须在else语句之前。
? 一旦其中一个else if语句检测为true,其他的else if以及else语句都将被跳过。
if…else if…else语句应用的语法格式如下:
if(布尔表达式 1){
语句1//如果布尔表达式 1的值为true执行的代码
}else if(布尔表达式 2){
语句2//如果布尔表达式 2的值为true执行的代码
}else if(布尔表达式 3){
语句3//如果布尔表达式 3的值为true执行的代码
}else {
语句4//如果以上布尔表达式都不为true执行的代码
}
【例3-3】(实例文件:ch03\Chap3.3.txt)多条件判断语句应用实例。
public class Test {
public static void main(String[] args) {
int x = 30;
if (x == 10) {
System.out.print("Value of X is 10");
} else if (x == 20) {
System.out.print("Value of X is 20");
} else if (x == 30) {
System.out.print("Value of X is 30");
} else {
System.out.print("这是 else 语句");
}
}
}
程序运行结果如图3-6所示。

图3-6 多条件判断语句应用实例
提示:多条件判断语句就是利用多个条件进行判断,如果有一个条件满足,则执行,不满足则继续向后判断。
3.3.4 嵌套的if…else语句
使用嵌套的if…else语句是合法的,也就是说可以在一个if或者else if语句中使用if或者else if语句。语法格式如下:
if(布尔表达式 1){
语句1//如果布尔表达式 1的值为true执行的代码
if(布尔表达式 2){
语句2//如果布尔表达式 2的值为true执行的代码
}
}
【例3-4】(实例文件:ch03\Chap3.4.txt)嵌套的if…else语句应用实例。
public class Test {
public static void main(String args[]){
int x = 30;
int y = 10;
if( x == 30 ){
if( y == 10 ){
System.out.print("X = 30 and Y = 10");
}
}
}
}
程序运行结果如图3-7所示。

图3-7 嵌套的if…else语句应用实例
3.3.5 switch语句
switch语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。switch本身只能够支持int、char型,在JDK 1.5之后可以使用enum型,而在JDK 1.7之后可以使用String型。语法格式如下:
switch(expression){
case value :
语句
break; //可选
case value :
语句
break; //可选
//可以有任意数量的case语句
default : //可选
语句
}
switch语句有如下规则:
? switch语句中的变量类型可以是byte、short、int或者char。从Java SE 7开始,switch支持字符串类型。case标签必须为字符串常量或字面量。
? switch语句可以拥有多个case语句。每个case后面跟一个要比较的值和冒号。
? case语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面量。
? 当变量的值与case语句的值相等时,case语句之后的语句开始执行,直到break语句出现才会跳出switch语句。
? 当遇到break语句时,switch语句终止。程序跳转到switch语句后面的语句执行。case语句不是必须包含break语句。如果没有break语句,程序会继续执行下一条case语句,直到遇到break语句。
? switch 语句可以包含一个default分支,该分支必须是switch语句的最后一个分支。default在没有case语句的值和变量值相等的时候执行。default分支不需要break语句。
【例3-5】(实例文件:ch03\Chap3.5.txt)switch语句应用实例。
public class Test {
public static void main(String[] args) {
char grade = 'C';
switch (grade) {
case 'A':
System.out.println("优秀");
break;
case 'B':
case 'C':
System.out.println("良好");
break;
case 'D':
System.out.println("及格");
case 'F':
System.out.println("你需要再努力努力");
break;
default:
System.out.println("未知等级");
}
System.out.println("你的等级是 " + grade);
}
}
程序运行结果如图3-8所示。

图3-8 switch语句应用实例
提示:使用switch语句的时候,如果满足条件的语句中没有break,那么就会在执行完满足条件的case语句后,继续判断下一个case语句的值是否满足条件,一直到switch语句结束或者是遇到break为止。
3.4 循环结构
顺序结构的程序语句只能被执行一次。如果想要使同样的操作执行多次,就需要使用循环结构。Java中有3种主要的循环结构,分别是while循环、do…while 循环、for 循环,另外,在Java 5中引入了一种主要用于数组的增强型for循环。
3.4.1 while语句
while是最基本的循环,只要布尔表达式为true,循环体会一直执行下去。语法格式如下:
while( 布尔表达式 ) {
语句//循环内容
}
while语句流程图如图3-9所示。

图3-9 while语句流程图
【例3-6】(实例文件:ch03\Chap3.6.txt)while语句应用实例。
public class Test {
public static void main(String[] args) {
int x = 10;
while (x < 20) {
System.out.print("value of x : " + x);
x++;
System.out.print("\n");
}
}
}
程序运行结果如图3-10所示。在本实例中,给定x初始值10,当满足x小于20这个条件时,会循环执行while语句,x每循环一次自加1,直到不满足条件为止。
注意:while语句一定要在循环内有让条件不成立的代码,否则就会陷入死循环。

图3-10 while语句应用实例
3.4.2 do…while语句
对于while语句而言,如果不满足条件,则不能进入循环。但有时候需要即使不满足条件也至少执行一次。do…while循环和while循环相似,不同的是,do…while循环至少会执行一次。语法格式如下:
do {
语句
}while(布尔表达式);
注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。如果布尔表达式的值为true,则语句块一直执行,直到布尔表达式的值为false。do…while语句的流程图如图3-11所示。

图3-11 do…while语句流程图
【例3-7】(实例文件:ch03\Chap3.7.txt)do…while语句应用实例。
public class Test {
public static void main(String[] args) {
int x = 1; //定义变量x,初始值为1
do {
System.out.println("x = " + x); //打印x的值
x++; //将x的值自增
} while (x <= 4); //循环条件
}
}
程序运行结果如图3-12所示。
提示:while语句属于先判断后执行,而do…while语句先执行一次,而后再进行判断。do…while循环和while循环能实现同样的功能。然而在程序运行过程中,这两种语句还是有差别的。如果循环条件在循环语句开始时就不成立,那么while循环的循环体一次都不会执行,而do…while循环的循环体会执行一次。

图3-12 do…while语句应用实例
3.4.3 for语句
虽然所有循环结构都可以用while或者do…while表示,但Java还提供了另一种语句——for循环,使一些循环结构变得更加简单。for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化表达式; 循环条件; 循环控制变量) {
语句
}
for关键字后面()中包括3部分内容:初始化表达式、循环条件和循环控制变量,它们之间用“;”分隔,{}中的语句为循环体。关于for循环有以下几点说明:
? 最先执行初始化步骤。可以声明一种类型,可以初始化一个或多个循环控制变量,也可以是空语句。
? 然后,检测循环条件的值。如果为true,循环体被执行;如果为false,循环终止,开始执行循环体后面的语句。
? 执行一次循环后,更新循环控制变量。
? 再次检测布尔表达式。循环执行上面的过程。
【例3-8】(实例文件:ch03\Chap3.8.txt)for语句应用实例。
public class Test {
public static void main(String[] args) {
for (int x = 10; x < 20; x++) {
System.out.print("value of x : " + x);
System.out.print("\n");
}
}
}
程序运行结果如图3-13所示。

图3-13 for语句应用实例
3.4.4 增强for语句
Java 5引入了一种主要用于数组的增强for语句。语法格式如下:
for(声明语句 : 表达式)
{
语句
}
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块内,其值与此时数组元素的值相等。
表达式:是要访问的数组名,或者是返回值为数组的方法。
【例3-9】(实例文件:ch03\Chap3.9.txt)增强for语句应用实例。
public class Test {
public static void main(String[] args) {
int[] numbers = { 10, 20, 30, 40, 50 };
for (int x : numbers) {
System.out.print(x);
System.out.print(",");
}
System.out.print("\n");
String[] names = { "James", "Larry", "Tom", "Lacy" };
for (String name : names) {
System.out.print(name);
System.out.print(",");
}
}
}
程序运行结果如图3-14所示。

图3-14 增强for语句实例
3.5 跳转语句
在Java语言中,支持3种跳转语句:break、continue和return语句,这些语句把控制转移到程序的其他部分。
3.5.1 break语句
break语句主要用在循环语句或者switch语句中,用来跳出整个语句块。break跳出最里层的循环,并且继续执行该循环下面的语句。break的用法很简单,语法格式如下:
break;
在Java中,break语句有3种作用:
? 在switch语句中,它被用来终止一个语句序列。
? 它能被用来退出一个循环。
? 它能作为一种“先进”的goto语句来使用。
【例3-10】(实例文件:ch03\Chap3.10.txt)break语句应用实例。
public class Test {
public static void main(String[] args) {
int x = 1; //定义变量x,初始值为1
while (x <= 4) { //循环条件
System.out.println("x = " + x); //条件成立,打印x的值
if (x == 3) {
break;
}
x++; //x进行自增
}
}
}
程序运行结果如图3-15所示。在本实例中,通过while循环显示x的值,当x的值为3时,使用break语句跳出循环,因此显示结果中没有出现“x=4”。

图3-15 break语句应用实例
3.5.2 continue语句
continue语句适用于任何循环控制结构中,作用是让程序立刻跳转到下一次循环的迭代。在for循环中,continue语句使程序立即跳转到下一次循环中。在while或者do…while循环中,程序立即跳转到布尔表达式的判断语句。
break语句和continue语句的区别:break语句是跳出当前层循环,终结整个循环,也不再判断循环条件是否成立;continue语句则是结束本次循环,不再运行continue之后的语句,然后重新回到循环的起点,判断循环条件是否成立,继续运行。
【例3-11】(实例文件:ch03\Chap3.11.txt)continue语句应用实例。
public class Test {
public static void main(String[] args) {
int sum = 0; //定义变量sum,用于记住和
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) { //i是一个偶数时不累加
continue; //结束本次循环
}
sum += i; //实现sum和i的累加
}
System.out.println("sum = " + sum);
}
}
程序运行结果如图3-16所示。在本实例中,使用for循环让变量i的值在1~100内循环。在循环过程中,当i的值为偶数时,执行continue语句结束本次循环进入下一次循环;当i的值为奇数时,sum和i进行累加,最终得到1~100的所有奇数之和,显示sum=2500。

图3-16 continue语句应用实例
3.5.3 return语句
return语句作为一个无条件的分支,无须判断条件即可发生。return语句主要有两个用途:一是用来表示一个方法返回的值(假定返回值类型不是void),二是它导致该方法退出并返回值。
根据方法的定义,每一个方法都有返回类型,该类型可以是基本类型,也可以是对象类型,同时每个方法都必须有一个结束标志,return起到了这个作用。在返回类型为void的方法中有一个隐含的return语句,因此,在void方法中return可以省略不写。

3.6 就业面试解析与技巧
3.6.1 面试解析与技巧(一)
面试官:在Java中,如何跳出当前的多重嵌套循环?
应聘者:可以使用break或者return语句。
3.6.2 面试解析与技巧(二)
面试官:break语句和continue语句有什么区别?
应聘者:在循环体中,break语句是跳出循环,即结束整个循环;而continue语句是跳出本次循环,执行下一次循环。
ISBN9787302501534,730250153X
出版社清华大学出版社
作者聚慕课教育研发中心
尺寸16