第0章 Java学习指南 2
0.1 Java为什么重要 2
0.2 Java简史——带给我们的一点思考 3
0.3 Java应用领域和前景 8
0.4 Java学习路线图 9
第Ⅰ篇 基础知识 13
第1章 Java开发环境搭建 13
1.1 Java开发环境 13
1.2 安装Java开发工具箱 13
1.2.1 下载JDK 13
1.2.2 安装JDK 16
1.3 Java环境变量的配置 17
1.3.1 理解环境变量 17
1.3.2 JDK中的3个环境变量 18
1.4 享受安装成果——开发第一个Java程序 24
1.5 Eclipse的使用 25
1.5.1 Eclipse概述 25
1.5.2 创建Java项目 26
1.5.3 创建Java类文件 28
1.5.4 运行Java程序 29
1.6 高手点拨 30
1.7 实战练习 30
第2章 Java程序要素概览 32
2.1 一个简单的例子 32
2.2 认识Java程序 33
2.2.1 Java程序的框架 34
2.2.2 标识符 35
2.2.3 关键字 35
2.2.4 注释 35
2.2.5 变量 36
2.2.6 数据类型 37
2.2.7 运算符和表达式 38
2.2.8 类 39
2.3 程序的检测 39
2.3.1 语法错误 39
2.3.2 语义错误 40
2.4 提高程序的可读性 41
2.5 高手点拨 42
2.6 实战练习 42
第3章 Java编程基础——常量、变量与数据类型 44
3.1 常量与变量 44
3.1.1 常量的声明与使用 44
3.1.2 变量的声明与使用 45
3.2 基本数据类型 49
3.2.1 数据类型的意义 49
3.2.2 整数类型 50
3.2.3 浮点类型 53
3.2.4 字符类型 54
3.2.5 布尔类型 56
3.3 高手点拨 57
3.4 实战练习 58
第4章 编程元素详解——运算符、表达式、语句与流程控制 60
4.1 运算符 60
4.1.1 赋值运算符 60
4.1.2 一元运算符 60
4.1.3 算术运算符 62
4.1.4 逻辑运算符 63
4.1.5 位运算符 66
4.1.6 三元运算符 67
4.1.7 关系运算符与if语句 68
4.1.8 递增与递减运算符 69
4.2 表达式 70
4.2.1 算术表达式与关系表达式 71
4.2.2 逻辑表达式与赋值表达式 71
4.2.3 表达式的类型转换 72
4.3 语句 74
4.3.1 语句中的空格 74
4.3.2 空语句 75
4.3.3 声明语句与赋值语句 75
4.4 程序的控制逻辑 76
4.4.1 顺序结构 76
4.4.2 选择结构 76
4.4.3 循环结构 77
4.5 选择结构 77
4.5.1 if语句 77
4.5.2 if…else语句 80
4.5.3 if…else if…else语句 82
4.5.4 多重选择——switch语句 83
4.6 循环结构 85
4.6.1 while循环 85
4.6.2 do…while循环 86
4.6.3 for循环 88
4.7 循环的跳转 90
4.7.1 break语句 90
4.7.2 continue语句 92
4.7.3 return语句 95
4.8 高手点拨 96
4.9 实战练习 96
第5章 数组与枚举 98
5.1 理解数组 98
5.2 一维数组 100
5.2.1 一维数组的声明与内存的分配 100
5.2.2 数组中元素的表示方法 101
5.2.3 数组元素的使用 102
5.3 二维数组 104
5.3.1 二维数组的声明与赋值 105
5.3.2 二维数组元素的引用及访问 106
5.4 枚举简介 107
5.5 Java中的枚举 107
5.5.1 常见的枚举定义方法 107
5.5.2 在程序中使用枚举 108
5.5.3 在switch语句中使用枚举 109
5.6 高手点拨 110
5.7 实战练习 110
第6章 类和对象 112
6.1 理解面向对象程序设计 112
6.1.1 面向对象程序设计简介 112
6.1.2 面向对象程序设计的基本特征 113
6.2 面向对象的基本概念 113
6.2.1 类 113
6.2.2 对象 113
6.2.3 类和对象的关系 114
6.3 类的声明与定义 115
6.3.1 类的声明 115
6.3.2 类的定义 116
6.4 类的属性 117
6.4.1 属性的定义 117
6.4.2 属性的使用 118
6.5 对象的声明与使用 120
6.5.1 对象的声明 120
6.5.2 对象的使用 121
6.5.3 匿名对象 123
6.6 高手点拨 124
6.7 实战练习 124
第7章 重复调用的代码块——方法 126
7.1 方法的基本定义 126
7.2 方法的使用 128
7.3 方法中的形参与实参 129
7.4 方法的重载 130
7.5 构造方法 133
7.5.1 构造方法的概念 133
7.5.2 构造方法的重载 135
7.5.3 构造方法的私有化 139
7.6 在方法内部调用方法 142
7.7 static方法 143
7.7.1 自定义static方法 143
7.7.2 static主方法(main) 145
7.8 高手点拨 146
7.9 实战练习 146
第Ⅱ篇 核心技术 149
第8章 类的封装、继承与多态 149
8.1 封装 149
8.1.1 Java访问权限修饰符 149
8.1.2 封装问题引例 149
8.1.3 类的封装实例 150
8.2 继承 156
8.2.1 Java中的继承 156
8.2.2 继承问题的引入 157
8.2.3 继承实现代码复用 158
8.2.4 继承的限制 160
8.3 覆写 163
8.3.1 属性的覆盖 163
8.3.2 方法的覆写 164
8.4 多态 167
8.4.1 多态的基本概念 167
8.4.2 方法多态性 169
8.4.3 对象多态性 170
8.5 高手点拨 172
8.6 实战练习 172
第9章 抽象类与接口 174
9.1 抽象类 174
9.1.1 抽象类的定义 174
9.1.2 抽象类的使用 175
9.2 接口 178
9.2.1 接口的基本概念 178
9.2.2 使用接口的原则 179
9.3 高手点拨 186
9.4 实战练习 186
第10章 Java常用类库 188
10.1 类库的概念 188
10.2 基本数据类型的包装类 188
10.2.1 装箱与拆箱 189
10.2.2 基本数据类型与字符串的转换 191
10.3 String类 193
10.3.1 字符串类的声明 193
10.3.2 String类中常用的方法 194
10.4 Math与Random类 197
10.4.1 Math类的使用 197
10.4.2 Random类的使用 198
10.5 高手点拨 200
10.6 实战练习 200
第11章 异常的捕获与处理 202
11.1 异常的基本概念 202
11.1.1 简单的异常范例 202
11.1.2 异常的处理 203
11.2 异常类的处理流程 208
11.3 throws关键字 209
11.4 throw关键字 210
11.5 异常处理的标准格式 211
11.6 高手点拨 212
11.7 实战练习 212
第Ⅲ篇 高级应用 215
第12章 多线程 215
12.1 感知多线程 215
12.2 体验多线程 215
12.2.1 通过继承Thread类实现多线程 216
12.2.2 通过实现Runnable接口实现多线程 218
12.2.3 两种多线程实现机制的比较 220
12.2.4 Java 8中运行线程的新方法 224
12.3 线程的状态 225
12.4 线程操作的一些方法 229
12.4.1 取得和设置线程的名称 229
12.4.2 判断线程是否启动 232
12.4.3 守护线程与setDaemon方法 233
12.4.4 线程的联合 234
12.5 高手点拨 236
12.6 实战练习 236
第13章 文件I/O操作 238
13.1 输入/输出的重要性 238
13.2 读写文本文件 238
13.2.1 File文件类 238
13.2.2 文本文件的操作 240
13.2.3 字符编码问题 244
13.3 文本的输入和输出 247
13.3.1 读入文本单词 247
13.3.2 读入单个字符 248
13.3.3 判断字符分类的方法 248
13.3.4 读入一行文本 249
13.3.5 将字符转换为数字 250
13.4 命令行参数的使用 251
13.4.1 System类对I/O支持 251
13.4.2 Java命令行参数解析 252
13.5 高手点拨 255
13.6 实战练习 256
第14章 GUI编程 258
14.1 GUI概述 258
14.2 GUI与AWT 258
14.3 AWT容器 259
14.3.1 Frame窗口 259
14.3.2 Panel面板 263
14.3.3 布局管理器 264
14.4 AWT常用组件 269
14.4.1 按钮与标签组件 270
14.4.2 文本域 272
14.4.3 图形控件 274
14.5 事件处理 275
14.5.1 事件处理的流程 275
14.5.2 常用的事件 276
14.5.3 事件处理小案例——会动的乌龟 281
14.6 Swing概述 284
14.7 Swing的基本组件 286
14.7.1 JTable表格 286
14.7.2 JComboBox下拉列表框 288
14.7.3 组件的常用方法 289
14.8 Swing的应用小案例——简易学籍管理系统 290
14.9 高手点拨 293
14.10 实战练习 294
第15章 数据库编程 296
15.1 数据库概述 296
15.2 Java数据库连接利器——JDBC 296
15.3 轻量级数据库——SQLite 296
15.3.1 SQLite的准备工作 296
15.3.2 用Java连接SQLite 299
15.3.3 创建数据表 300
15.3.4 更新数据表 302
15.3.5 查询数据表 307
15.4 SQLite实战——简易学生信息管理系统 311
15.4.1 基本数据结构 312
15.4.2 数据库操作有关工具类 314
15.4.3 主界面的构造 318
15.4.4 用于输入新数据的对话框实现 324
15.5 MySQL数据库 330
15.5.1 MySQL数据库的基本命令 330
15.5.2 在Java中使用MySQL数据库 333
15.6 高手点拨 338
15.7 实战练习 338
第16章 Java Web初步 340
16.1 JSP概述 340
16.2 JSP的运行环境 340
16.2.1 安装Tomcat 340
16.2.2 配置虚拟目录 343
16.2.3 编写第一个JSP程序 345
16.2.4 Tomcat执行流程 346
16.3 基础语法 347
16.3.1 显式注释与隐式注释 347
16.3.2 代码段 348
16.3.3 Page指令 350
16.3.4 包含指令 352
16.3.5 跳转指令 356
16.4 内置对象 357
16.4.1 request对象 358
16.4.2 response对象 361
16.5 Servlet 367
16.5.1 Servlet简介 367
16.5.2 第一个Servlet程序 368
16.6 高手点拨 372
16.7 实战练习 372
第17章 常用设计框架 374
17.1 框架的内涵 374
17.2 Struts开发基础 374
17.2.1 Struts简介 374
17.2.2 MVC的基本概念 375
17.2.3 下载Struts 2类库 375
17.2.4 从Struts 2的角度理解MVC 376
17.2.5 第一个Struts 2实例 377
17.2.6 运行测试StrutsDemo工程 386
17.2.7 小节 387
17.3 Spring快速上手 387
17.3.1 Spring基本知识 387
17.3.2 Spring开发准备 388
17.3.3 Spring框架配置 388
17.3.4 Spring开发实例 392
17.4 Hibernate入门 396
17.4.1 Hibernate开发基础 397
17.4.2 Hibernate开发准备 397
17.4.3 Hibernate开发实例 400
17.5 高手点拨 415
17.6 实战练习 416
第18章 Android编程基础 418
18.1 Android简介 418
18.1.1 Android系统架构 418
18.1.2 Android应用开发特色 418
18.2 搭建开发环境 419
18.2.1 准备所需要的软件 419
18.2.2 搭建开发环境 419
18.3 创建第一个Android项目 422
18.3.1 创建HelloWorld项目 422
18.3.2 运行HelloWorld项目 424
18.3.3 解析第一个Android程序 425
18.4 详解基本布局 428
18.4.1 线性布局 428
18.4.2 相对布局 432
18.4.3 帧布局 436
18.5 常见控件的使用方法 437
18.5.1 TextView 437
18.5.2 EditText 438
18.5.3 Button 440
18.5.4 ImageView 443
18.6 Activity详细介绍 444
18.6.1 Activity生命周期 444
18.6.2 Activity状态 444
18.6.3 Activity启动模式 445
18.7 高手点拨 446
18.8 实战练习 446
第Ⅳ篇 项目实战 449
第19章 Android项目实战——智能电话回拨系统 449
19.1 系统概述 449
19.1.1 背景介绍 449
19.1.2 运行程序 449
19.1.3 系统需求分析 450
19.1.4 详细功能设计 450
19.2 系统实现 451
19.2.1 主界面 451
19.2.2 修改密码 452
19.2.3 意见反馈 455
19.3 项目功能用到的知识点讲解 460
19.3.1 读取通讯录 460
19.3.2 读取联系人头像 463
19.3.3 读取短信 464
19.4 高手点拨 466
19.5 实战练习 466
第20章 Java Web项目实战——我的饭票网 468
20.1 系统分析 468
20.2 系统设计 468
20.3 数据库设计 469
20.3.1 功能分析 469
20.3.2 基本表设计 469
20.4 用户注册模块设计 473
20.4.1 用户注册模块概述 473
20.4.2 与用户注册有关的数据库连接及操作类 473
20.4.3 用户注册界面设计 480
20.4.4 用户注册事件处理页面 483
20.5 用户登录模块设计 484
20.5.1 用户登录模块概述 484
20.5.2 与用户登录有关的数据库连接及操作类 484
20.5.3 用户登录界面设计 486
20.5.4 用户登录验证处理页面 488
20.6 用户主页面模块设计 490
20.6.1 用户主页面模块概述 490
20.6.2 与用户主页面有关的数据库连接及操作类 490
20.6.3 用户主页面界面设计 495
20.7 高手点拨 498
20.8 实战练习 498
第21章 大数据项目实战——Hadoop下的数据处理 500
21.1 认识Hadoop 500
21.2 理解MapReduce编程范式 501
21.3 第一个Hadoop案例——WordCount代码详解 501
21.3.1 WordCount基本流程 502
21.3.2 WordCount代码详解 503
21.3.3 运行WordCount 506
21.4 面向K-Means聚类算法的Hadoop实践 510
21.4.1 K-Means聚类算法简介 510
21.4.2 基于MapReduce的K-Means算法实现 513
21.4.3 编写K-Means 513
21.4.4 在Hadoop集群运行KMeans 538
21.5 高手点拨 542
21.6 实战练习 542
附录:全分布式Hadoop集群的构建 543
安装CentOS 7 543
安装Java并配置环境变量 544
安装Hadoop 546
下载Hadoop包 546
安装Hadoop 547
Hadoop的运行模式 547
Hadoop集群构建 548
设置静态IP地址 548
修改hosts文件 550
安装和配置SSH服务 550
安装SSH 551
SSH免密码登录 551
虚拟机的配置文件同步 553
全分布模式下配置Hadoop 553
配置Hadoop环境变量 553
配置hadoop-env.sh 554
配置HDFS的主节点(core-site.xml) 555
配置slaves 556
配置yarn-site.xml 557
配置mapred-site.xml 558
验证全分布模式 559
默认配置文件所在位置 560
关闭Hadoop 560