内容介绍
本书主要面向零基础读者,用实例引导读者学习,深入浅出地介绍Java的相关知识和实战技能。
本书第Ⅰ篇“基础知识”主要讲解Java开发环境搭建、Java程序要素,并逐一介绍常量、变量、运算符、表达式、语句、流程控制、数组、枚举、类、对象以及方法等;
第Ⅱ篇“核心技术”主要介绍类的封装、继承、多态,并逐一介绍抽象类、接口、Java常用类库以及异常的捕获与处理等;
第Ⅲ篇“*级应用”主要介绍多线程、文件I/O操作、GUI编程、Swing GUI编程、Java Web、常用设计框架以及Android编程基础等;
第Ⅳ篇“项目实战”主要介绍智能电话回拨系统、理财管理系统、我的饭票网以及Hadoop下的数据处理等。
本书提供了与图书内容全程同步的教学视频。此外,还赠送大量相关学习资料,以便读者扩展学习。 适合任何想学习Java的初学者,无论初学者是否从事计算机相关行业,是否接触过Java,均可通过对本书内容的学习快速掌握Java的开发方法和技巧。
作者介绍
张玉宏,工学博士,科普作家,阿里云云栖社区认证专家、专栏作家,畅销书《品味大数据》作者,电气和电子工程师协会(IEEE)会员,国际计算机协会(ACM)会员,中国计算机协会(CCF)会员。2012年毕业于电子科技大学,2009—2011年在美国西北大学做访问学者,现执教于河南工业大学。主要研究方向为高性能计算、大数据。发表SCI/EI论文10余篇,出版国内外学术专著5部。 周喜平,教授,河南省教师,河南省教育厅学术带头人,河南省高等学校计算机类专业教学指导委员会委员。研究方向为软件工程、软件开发技术等。发表论文30余篇,出版专著5部,主持和参与科研项目20余项,其中使用Java实现的项目包括“电力及施工企业固定资产管理系统”“惠农资金管理系统”“地市级居民医疗保险信息 管理系统” “纯电动汽车高并发数据采集平台”“基于标准分的教师评教系统”等。
目录
- 上册
- 第0章 Java学习指南
- 0.1 Java为什么重要 002
- 0.2 Java简史—给我们带来的一点思考 003
- 0.3 Java应用领域和前景 007
- 0.4 Java学习路线图 009
- 第Ⅰ篇基础知识
- 第 1章 小荷才露尖尖角——Java开发环境搭建
- 1.1 Java开发环境 013
- 1.2 安装Java开发工具箱 013
- 1.2.1 下载JDK 013
- 1.2.2 安装JDK 016
- 1.3 Java环境变量的配置 017
- 1.3.1 理解环境变量 017
- 1.3.2 JDK中的3个环境变量 018
- 1.4 享受安装成果—开发第 1个Java程序 022
- 1.5 Eclipse的使用 023
- 1.5.1 Eclipse概述 023
- 1.5.2 创建Java项目 025
- 1.5.3 创建Java类文件 026
- 1.5.4 在代码编辑器中编写Java程序代码 027
- 1.5.5 运行Java程序 029
- 1.6 探秘Java虚拟机 029
- 1.7 高手点拨 030
- 1.8 实战练习 032
- 第 2章 初识庐山真面目——Java程序要素概览
- 2.1 一个简单的例子 034
- 2.2 感性认识Java程序 035
- 2.2.1 Java程序的框架 036
- 2.2.2 标识符 037
- 2.2.3 关键字 037
- 2.2.4 注释 038
- 2.2.5 变量 039
- 2.2.6 数据类型 040
- 2.2.7 运算符和表达式 040
- 2.2.8 类 041
- 2.2.9 输入与输出 041
- 2.3 程序的检测 044
- 2.3.1 语法错误 044
- 2.3.2 语义错误 045
- 2.4 提高程序的可读性 046
- 2.5 高手点拨 047
- 2.6 实战练习 047
- 第3章 九层之台,起于垒土——Java编程基础
- 3.1 常量与变量 050
- 3.1.1 常量的声明与使用 050
- 3.1.2 变量的声明与使用 051
- 3.2 基本数据类型 055
- 3.2.1 数据类型的意义 055
- 3.2.2 整数类型 056
- 3.2.3 浮点类型 059
- 3.2.4 字符类型 060
- 3.2.5 布尔类型 062
- 3.3 数据类型的转换 063
- 3.3.1 自动类型转换 063
- 3.3.2 强制类型转换 064
- 3.4 高手点拨 065
- 3.5 实战练习 066
- 第4章 基础编程元素——运算符、表达式、语句与流程控制
- 4.1 运算符 070
- 4.1.1 赋值运算符 070
- 4.1.2 一元运算符 070
- 4.1.3 算术运算符 072
- 4.1.4 逻辑运算符 073
- 4.1.5 位运算符 076
- 4.1.6 三元运算符 077
- 4.1.7 关系运算符与 if 语句 078
- 4.1.8 递增与递减运算符 079
- 4.1.9 括号运算符 080
- 4.2 表达式 080
- 4.2.1 算术表达式与关系表达式 081
- 4.2.2 逻辑表达式与赋值表达式 082
- 4.2.3 表达式的类型转换 083
- 4.3 语句 084
- 4.3.1 语句中的空格 084
- 4.3.2 空语句 085
- 4.3.3 声明语句与赋值语句 086
- 4.4 程序的控制逻辑 086
- 4.4.1 顺序结构 087
- 4.4.2 分支结构 088
- 4.4.3 循环结构 088
- 4.5 选择结构 088
- 4.5.1 if 语句 089
- 4.5.2 if…else 语句 089
- 4.5.3 if…else if…else 语句 090
- 4.5.4 多重选择——switch 语句 091
- 4.6 循环结构 093
- 4.6.1 while 循环 093
- 4.6.2 do…while 循环 095
- 4.6.3 for 循环 097
- 4.6.4 foreach 循环 098
- 4.7 循环的跳转 099
- 4.7.1 break 语句 099
- 4.7.2 continue 语句 101
- 4.7.3 return 语句 104
- 4.8 高手点拨 105
- 4.9 实战练习 106
- 第5章 常用的数据结构——数组与枚举
- 5.1 理解数组 108
- 5.2 一维数组 111
- 5.2.1 一维数组的声明与内存的分配 111
- 5.2.2 数组中元素的表示方法 112
- 5.2.3 数组元素的使用 113
- 5.3 二维数组 116
- 5.3.1 二维数组的声明与赋值 116
- 5.3.2 二维数组元素的引用及访问 117
- 5.4 枚举简介 118
- 5.5 Java 中的枚举 118
- 5.5.1 常见的枚举定义方法 118
- 5.5.2 在程序中使用枚举 119
- 5.5.3 在 switch 语句中使用枚举 120
- 5.6 高手点拨 121
- 5.7 实战练习 121
- 第6章 面向对象设计的核心——类和对象
- 6.1 理解面向对象程序设计 124
- 6.1.1 结构化程序设计简介 124
- 6.1.2 面向对象程序设计简介 124
- 6.1.3 面向对象程序设计的基本特征 125
- 6.1.4 面向对象编程和面向过程编程的比较 126
- 6.2 面向对象的基本概念 127
- 6.2.1 类 127
- 6.2.2 对象 128
- 6.2.3 类和对象的关系 128
- 6.3 类的声明与定义 129
- 6.3.1 类的声明 129
- 6.3.2 类的定义 130
- 6.4 类的属性 132
- 6.4.1 属性的定义 132
- 6.4.2 属性的使用 132
- 6.5 对象的声明与使用 135
- 6.5.1 对象的声明 135
- 6.5.2 对象的使用 136
- 6.5.3 匿名对象 138
- 6.5.4 对象的比较 139
- 6.5.5 对象数组的使用 141
- 6.6 this关键字的使用 143
- 6.7 static关键字的使用 145
- 6.8 final关键字的使用 149
- 6.9 高手点拨 150
- 6.10 实战练习 152
- 第7章 重复调用的代码块——方法
- 7.1 方法的基本定义 154
- 7.2 方法的使用 156
- 7.3 方法中的形参与实参 157
- 7.4 方法的重载 158
- 7.5 构造方法 161
- 7.5.1 构造方法简介 161
- 7.5.2 构造方法的重载 163
- 7.5.3 构造方法的私有化 167
- 7.6 在方法内部调用方法 171
- 7.7 代码块 172
- 7.7.1 普通代码块 172
- 7.7.2 构造代码块 173
- 7.7.3 静态代码块 175
- 7.8 static方法 177
- 7.8.1 自定义static方法 177
- 7.8.2 static主方法 178
- 7.9 方法与数组 180
- 7.9.1 数组引用传递 180
- 7.9.2 让方法返回数组 183
- 7.10 包的概念及使用 185
- 7.10.1 包的基本概念 185
- 7.10.2 包的导入 186
- 7.10.3 JDK中常见的包 187
- 7.11 高手点拨 188
- 7.12 实战练习 188
- 第Ⅱ篇 核心技术
- 第8章 面向对象设计的精华——类的封装、继承与多态
- 8.1 面向对象的三大特点 191
- 8.1.1 封装的含义 191
- 8.1.2 继承的含义 191
- 8.1.3 多态的含义 192
- 8.2 封装的实现 194
- 8.2.1 Java 访问权限修饰符 194
- 8.2.2 封装问题引例 194
- 8.2.3 类的封装实例 195
- 8.3 继承的实现 202
- 8.3.1 继承的基本概念 202
- 8.3.2 继承问题的引入 202
- 8.3.3 继承实现代码复用 204
- 8.3.4 继承的限制 205
- 8.4 深度认识类的继承 208
- 8.4.1 子类对象的实例化过程 208
- 8.4.2 super关键字的使用 210
- 8.4.3 限制子类的访问 213
- 8.5 覆写 216
- 8.5.1 属性的覆盖 216
- 8.5.2 方法的覆写 217
- 8.5.3 关于覆写的注解——@Override 221
- 8.6 多态的实现 223
- 8.6.1 多态的基本概念 223
- 8.6.2 方法多态性 225
- 8.6.3 对象多态性 225
- 8.6.4 隐藏 230
- 8.7 高手点拨 231
- 8.8 实战练习 234
- 第9章 凝练才是美——抽象类、接口与内部类
- 9.1 抽象类 236
- 9.1.1 抽象类的定义 236
- 9.1.2 抽象类的使用 236
- 9.2 接口 240
- 9.2.1 接口的基本概念 240
- 9.2.2 使用接口的原则 241
- 9.2.3 接口的作用——Java 的回调机制 248
- 9.3 内部类 253
- 9.3.1 内部类的基本定义 253
- 9.3.2 在方法中定义内部类 255
- 9.4 匿名内部类 256
- 9.5 匿名对象 258
- 9.6 高手点拨 259
- 9.7 实战练习 262
- 第 10章 更灵活的设计——泛型
- 10.1 泛型的概念 264
- 10.2 泛型类的定义 264
- 10.3 泛型方法的定义 265
- 10.4 泛型接口的定义 265
- 10.5 泛型的使用限制和通配符的使用 266
- 10.5.1 泛型的使用限制 266
- 10.5.2 通配符的使用 267
- 10.6 泛型的继承和实现 268
- 10.7 高手点拨 269
- 10.8 实战练习 270
- 第 11章 更强大和方便的功能——注解
- 11.1 注解概述 272
- 11.2 常用内置注解 272
- 11.3 自定义注解 274
- 11.4 通过反射访问注解信息 277
- 11.5 高手点拨 280
- 11.6 实战练习 282
- 第 12章 设计实践——常用的设计模式
- 12.1 设计模式概述 284
- 12.1.1 设计模式的背景 284
- 12.1.2 设计模式的分类 284
- 12.2 创建型模式 285
- 12.2.1 单例设计模式 285
- 12.2.2 多例设计模式 288
- 12.2.3 工厂模式 290
- 12.3 结构型模式 295
- 12.3.1 代理设计模式 296
- 12.3.2 桥接设计模式 299
- 12.4 行为型模式 307
- 12.4.1 行为型模式概述 307
- 12.4.2 责任链设计模式 307
- 12.5 高手点拨 310
- 12.6 实战练习 310
- 第 13章 存储类的仓库——Java常用类库
- 13.1 API 概念 312
- 13.2 基本数据类型的包装类 312
- 13.2.1 装箱与拆箱 313
- 13.2.2 基本数据类型与字符串的转换 315
- 13.3 String 类 317
- 13.3.1 字符串类的声明 317
- 13.3.2 String 类中常用的方法 319
- 13.4 System 类与 Runtime 类 321
- 13.4.1 System 类 321
- 13.4.2 Runtime 类 324
- 13.5 日期操作类 326
- 13.5.1 日期类 326
- 13.5.2 日期格式化类 328
- 13.6 正则表达式 329
- 13.6.1 正则的引出 329
- 13.6.2 正则标记 331
- 13.6.3 利用String进行正则操作 332
- 13.7 Math与Random类 334
- 13.7.1 Math类的使用 334
- 13.7.2 Random类的使用 335
- 13.8 高手点拨 337
- 13.9 实战练习 338
- 第 14章 防患于未然——异常的捕获与处理
- 14.1 异常的基本概念 340
- 14.1.1 为何需要异常处理 340
- 14.1.2 简单的异常范例 341
- 14.1.3 异常的处理 342
- 14.1.4 异常处理机制的小结 347
- 14.2 异常类的处理流程 348
- 14.3 throws关键字 348
- 14.4 throw关键字 350
- 14.5 异常处理的标准格式 350
- 14.6 RuntimeException类 352
- 14.7 编写自己的异常类 353
- 14.8 高手点拨 354
- 14.9 实战练习 354
- 下册
- 第Ⅲ篇 *级应用
- 第 15章 齐头并进, 并发任务的处理——多线程
- 15.1 感知多线程 357
- 15.1.1 现实生活中的多线程 357
- 15.1.2 进程与线程 357
- 15.1.3 多线程的优势 358
- 15.2 体验多线程 359
- 15.2.1 通过继承Thread类实现多线程 360
- 15.2.2 通过Runnable接口实现多线程 362
- 15.2.3 两种多线程实现机制的比较 364
- 15.2.4 Java 8中运行线程的新方法 367
- 15.3 线程的状态 369
- 15.4 线程操作的一些方法 373
- 15.4.1 取得和设置线程的名称 373
- 15.4.2 判断线程是否启动 376
- 15.4.3 守护线程与setDaemon方法 377
- 15.4.4 线程的联合 378
- 15.4.5 如何中断一个线程 380
- 15.5 多线程的同步 383
- 15.5.1 同步问题的引出 383
- 15.5.2 同步代码块 385
- 15.5.3 同步方法 386
- 15.5.4 死锁 388
- 15.6 线程间通信 391
- 15.6.1 问题的引出 391
- 15.6.2 问题如何解决 392
- 15.7 线程池技术及其应用 400
- 15.7.1 线程池的概念 400
- 15.7.2 线程池的用法 401
- 15.8 高手点拨 407
- 15.9 实战练习 408
- 第 16章 文件I/O操作
- 16.1 输入/输出的重要性 410
- 16.2 读写文本文件 411
- 16.2.1 File类 411
- 16.2.2 文本文件的操作 414
- 16.2.3 字符编码问题 417
- 16.3 文本的输入和输出 420
- 16.3.1 读入文本单词 420
- 16.3.2 读入单个字符 421
- 16.3.3 判断字符分类的方法 421
- 16.3.4 读入一行文本 422
- 16.3.5 将字符转换为数字 423
- 16.4 字节流与字符流 424
- 16.4.1 字节输出流——OutputStream 425
- 16.4.2 字节输入流——InputStream 425
- 16.4.3 字符输出流——Writer 428
- 16.4.4 字符输入流——Reader 429
- 16.4.5 字节流与字符流的转换 431
- 16.5 命令行参数的使用 434
- 16.5.1 System类对I/O的支持 434
- 16.5.2 Java命令行参数解析 434
- 16.6 高手点拨 438
- 16.7 实战练习 438
- 第 17章 数据持久化方法——对象序列化
- 17.1 对象序列化的基本概念 440
- 17.2 序列化与对象输出流ObjectOutputStream 441
- 17.3 反序列化与对象输入流ObjectInputStream 442
- 17.4 序列化对象的版本号serialVersionUID 444
- 17.5 transient关键字 445
- 17.6 Externalizable接口 445
- 17.7 高手点拨 448
- 17.8 实战练习 448
- 第 18章 绚丽多彩的图形界面——GUI编程
- 18.1 GUI概述 450
- 18.2 GUI与AWT 450
- 18.3 AWT容器 451
- 18.3.1 Frame窗口 452
- 18.3.2 Panel面板 456
- 18.3.3 布局管理器 457
- 18.4 AWT常用组件 462
- 18.4.1 按钮与标签组件 463
- 18.4.2 TextField文本域 465
- 18.4.3 图形控件 467
- 18.5 事件处理 468
- 18.5.1 事件处理的流程 468
- 18.5.2 常用的事件 469
- 18.5.3 小案例—会动的乌龟 474
- 18.6 高手点拨 477
- 18.7 实战练习 478
- 第 19章 Swing GUI编程
- 19.1 Swing概述 480
- 19.2 Swing的基本组件 481
- 19.2.1 JTable表格 481
- 19.2.2 JComboBox下拉列表框 483
- 19.2.3 组件常用方法 485
- 19.3 Swing的应用 486
- 19.3.1 小案例——简易的学籍管理系统 486
- 19.3.2 小案例——简易随机验证码的生成 489
- 19.4 高手点拨 492
- 19.5 实战练习 492
- 第 20章 打通数据的互联——Java Web初步
- 20.1 Web开发的发展历程 494
- 20.1.1 静态Web处理阶段 494
- 20.1.2 动态Web处理阶段 495
- 20.2 JSP的运行环境 497
- 20.2.1 安装Tomcat 497
- 20.2.2 配置虚拟目录 500
- 20.2.3 编写第 1个JSP程序 502
- 20.2.4 Tomcat执行流程 503
- 20.3 基础语法 503
- 20.3.1 显式注释与隐式注释 504
- 20.3.2 Scriptlet 505
- 20.3.3 Page指令 507
- 20.3.4 包含指令 509
- 20.3.5 跳转指令 513
- 20.4 高手点拨 515
- 20.5 实战练习 516
- 第 21章 JSP进阶——内置对象与Servlet
- 21.1 内置对象 518
- 21.1.1 request对象 518
- 21.1.2 response对象 521
- 21.1.3 session对象 528
- 21.1.4 其他内置对象 532
- 21.2 Servlet 535
- 21.2.1 Servlet简介 535
- 21.2.2 第 1个Servlet程序 535
- 21.2.3 Eclipse中的Servlet配置 539
- 21.3 高手点拨 545
- 21.4 实战练习 546
- 第 22章 高效开发的利器——常用MVC设计框架
- 22.1 框架的内涵 548
- 22.2 Struts 开发基础 549
- 22.2.1 Struts简介 549
- 22.2.2 MVC的基本概念 550
- 22.2.3 Struts 2的工作原理 550
- 22.2.4 下载Struts 2 -类库 551
- 22.2.5 从Struts 2的角度理解MVC 552
- 22.2.6 第 1个Struts 2 -实例 553
- 22.2.7 运行测试StrutsDemo工程 562
- 22.2.8 小结 563
- 22.3 高手点拨 564
- 22.4 实战练习 564
- 第 23章 高效开发的利器——Spring框架
- 23.1 Spring快速上手 566
- 23.1.1 Spring基本知识 566
- 23.1.2 Spring框架模块 566
- 23.1.3 Spring开发准备 567
- 23.1.4 Spring框架配置 567
- 23.2 Spring开发实例 570
- 23.3 Spring和Struts结合 575
- 23.4 高手点拨 576
- 23.5 实战练习 576
- 第 24章 让你的数据库记录像操作变量一样方便——Hibernate
- 24.1 Hibernate开发基础 578
- 24.2 Hibernate开发准备 578
- 24.2.1 下载Hibernate开发包 578
- 24.2.2 在Eclipse中部署Hibernate开发环境 579
- 24.2.3 安装部署MySQL驱动 579
- 24.3 Hibernate开发实例 580
- 24.3.1 开发Hibernate项目的完整流程 581
- 24.3.2 创建 HibernateDemo 项目 581
- 24.3.3 创建数据表USER 583
- 24.3.4 编写 POJO 映射类 User.java 584
- 24.3.5 编写映射文件User.hbm.xml 586
- 24.3.6 编写 hibernate.cfg.xml 配置文件 586
- 24.3.7 编写辅助工具类 HibernateUtil.Java 588
- 24.3.8 编写DAO接口UserDAO.java 590
- 24.3.9 编写DAO层实现类 591
- 24.3.10 编写测试类 UserTest.java 593
- 24.4 高手点拨 596
- 24.5 实战练习 596
- 第 25章 移动互联的精彩——Android编程基础
- 25.1 Android简介 598
- 25.1.1 Android系统架构 598
- 25.1.2 Android已发布的版本 598
- 25.1.3 Android应用开发特色 599
- 25.2 搭建开发环境 599
- 25.2.1 准备所需要的软件 599
- 25.2.2 开发环境的搭建 599
- 25.3 创建第 1个Android项目 601
- 25.3.1 创建HelloWorld项目 601
- 25.3.2 运行HelloWorld 602
- 25.3.3 解析第 1个Android程序 603
- 25.4 详解基本布局 605
- 25.4.1 线性布局 606
- 25.4.2 相对布局 610
- 25.4.3 帧布局 613
- 25.4.4 TableLayout 614
- 25.5 常见控件的使用方法 616
- 25.5.1 TextView 616
- 25.5.2 EditText 617
- 25.5.3 Button 619
- 25.5.4 ProgressDialog 622
- 25.5.5 ImageView 624
- 25.6 Activity详细介绍 624
- 25.6.1 Activity生命周期 625
- 25.6.2 Activity状态 625
- 25.6.3 Activity启动模式 626
- 25.7 高手点拨 626
- 25.8 实战练习 626
- 第Ⅳ篇 项目实战
- 第 26章 Android项目实战——智能电话回拨系统
- 26.1 系统概述 629
- 26.1.1 背景介绍 629
- 26.1.2 运行程序 629
- 26.1.3 系统需求分析 630
- 26.1.4 详细功能设计 630
- 26.2 系统实现 630
- 26.2.1 主界面 630
- 26.2.2 修改密码 632
- 26.2.3 意见反馈 634
- 26.3 项目功能用到的知识点讲解 638
- 26.3.1 读取通讯录 638
- 26.3.2 读取联系人头像 642
- 26.3.3 读取短信 642
- 26.4 高手点拨 644
- 26.5 实战练习 644
- 第 27章 Android进阶项目实战——理财管理系统
- 27.1 系统概述 646
- 27.1.1 背景介绍 646
- 27.1.2 运行程序 646
- 27.1.3 系统需求分析 647
- 27.2 系统数据存储的设计和实现 647
- 27.2.1 数据分析和设计 647
- 27.2.2 数据库设计和实现 649
- 27.2.3 SharedPreferences存储方式 655
- 27.2.4 文件存储方式 656
- 27.3 系统详细设计和实现 657
- 27.3.1 欢迎界面模块设计和实现 657
- 27.3.2 用户注册登录模块设计和实现 660
- 27.3.3 随时查看记录模块设计和实现 669
- 27.3.4 查看记录模块设计和实现 674
- 27.3.5 预算模块设计和实现 680
- 27.3.6 写心情模块设计和实现 684
- 27.4 系统开发经验和技巧 694
- 27.4.1 项目经验 694
- 27.4.2 项目技巧 694
- 27.5 高手点拨 694
- 27.6 实战练习 694
- 第 28章 Java Web项目实战——我的饭票网
- 28.1 系统分析 696
- 28.1.1 需求分析 696
- 28.1.2 编写项目计划书 696
- 28.2 系统设计 697
- 28.2.1 系统目标 697
- 28.2.2 系统功能设计 697
- 28.3 数据库设计 697
- 28.3.1 功能分析 697
- 28.3.2 基本表设计 698
- 28.4 用户注册模块设计 701
- 28.4.1 用户注册模块概述 702
- 28.4.2 与用户注册有关的数据库连接及操作类 702
- 28.4.3 用户注册界面设计 708
- 28.4.4 用户注册事件处理页面 711
- 28.5 用户登录模块设计 713
- 28.5.1 用户登录模块概述 713
- 28.5.2 与用户登录有关的数据库连接及操作类 713
- 28.5.3 用户登录界面设计 714
- 28.5.4 用户登录验证处理页面 716
- 28.6 用户主页面模块设计 718
- 28.6.1 用户主页面模块概述 718
- 28.6.2 用户主页面有关的数据库连接及操作类 718
- 28.6.3 用户主页面界面设计 723
- 28.7 高手点拨 726
- 28.8 实战练习 726
- 第 29章 Java Web项目实战——客户关系管理项目
- 29.1 系统概述 728
- 29.1.1 系统开发背景 728
- 29.1.2 项目开发环境的搭建 728
- 29.2 系统分析和设计 729
- 29.2.1 系统需求分析 729
- 29.2.2 数据库分析和设计 730
- 29.3 系统架构分析和设计 734
- 29.3.1 分层结构和MVC模式 734
- 29.3.2 模式一转为模式二的过程:登录例子 734
- 29.3.3 程序的分层及层次间的关系 735
- 29.3.4 接口的设计和实现 736
- 29.3.5 VO的设计和实现 740
- 29.4 用户登录模块设计 742
- 29.4.1 模块需求细化 742
- 29.4.2 模块相关数据库实现细节 743
- 29.4.3 用户登录界面设计 743
- 29.4.4 模块详细设计和实现 746
- 29.5 客户管理模块设计 750
- 29.5.1 模块需求细化 750
- 29.5.2 模块相关数据库实现细节 751
- 29.5.3 客户管理界面设计 751
- 29.5.4 模块详细设计和实现 757
- 29.6 公告管理模块设计 766
- 29.6.1 模块需求细化 766
- 29.6.2 模块相关数据库实现细节 766
- 29.6.3 公告管理界面设计 767
- 29.6.4 模块详细设计和实现 771
- 29.7 高手点拨 780
- 29.8 实战练习 780
- 第30章 大数据项目实战——Hadoop下的数据处理
- 30.1 认识Hadoop 782
- 30.1.1 初识Hadoop 782
- 30.1.2 Hadoop平台构成 783
- 30.2 理解MapReduce编程范式 784
- 30.3 第 1个Hadoop案例——WordCount代码详解 785
- 30.3.1 WordCount基本流程 785
- 30.3.2 WordCount代码详解 786
- 30.3.3 运行WordCount 790
- 30.4 面向K-Means聚类算法的Hadoop实践 796
- 30.4.1 K-Means聚类算法简介 796
- 30.4.2 基于MapReduce的K-Means算法实现 798
- 30.5 高手点拨 806
- 30.6 实战练习 806
- 附录 全分布式Hadoop集群的构建
- 安装CentOS 7 807
- 安装Java并配置环境变量 808
- 安装Hadoop 810
- 下载Hadoop包 810
- 安装Hadoop 811
- Hadoop的运行模式 811
- Hadoop集群构建 811
- 在Windows操作系统下克隆虚拟机 812
- 配置虚拟机MAC地址 812
- 设置静态IP地址 813
- 安装和配置SSH服务 815
- 安装SSH 815
- SSH免密码登录 815
- 修改hosts文件 818
- 虚拟机的同步配置 818
- SSH免密码登录配置过程 819
- 全分布模式下配置Hadoop 819
- 同步配置文件 824
- 创建所需目录 825
- 关闭防火墙 825
- 格式化文件系统 825
- 启动Hadoop守护进程 825
- 验证全分布模式 826
- 默认配置文件所在位置 826
- 关闭Hadoop 826