内容介绍
本书以零基础讲解为宗旨,用实例引导读者学习,深入浅出地介绍了Java的相关知识和实战技能。 本书第Ⅰ篇【基础知识】主要讲解Java开发环境搭建、Java程序要素、常量、变量、数据类型、运算符、表达式、语句、流程控制、数组、枚举、类、对象以及方法等;第Ⅱ篇【核心技术】主要介绍类的封装、继承、多态、抽象类、接口、Java常用类库以及异常的捕获与处理等;第Ⅲ篇【gao级应用】主要介绍多线程、文件I/O操作、GUI编程、数据库编程、Java Web、常用设计框架以及Android编程基础等;第Ⅳ篇【项目实战】主要介绍智能电话回拨系统、饭票网以及Hadoop下的数据处理等。 本书提供了与图书内容全程同步的教学录像。此外,还赠送了大量相关学习资料,以便读者扩展学习。 本书适合任何想学习Java的读者,无论您是否从事计算机相关行业,是否接触Java,均可通过学习本书快速掌握Java的开发方法和技巧。
作者介绍
张玉宏,工学博士,科普作家,阿里云云栖社区认证专家、专栏作家,畅销书《品味大数据》作者,电气和电子工程师协会(IEEE)会员,国际计算机协会(ACM)会员,中国计算机协会(CCF)会员。2012年毕业于电子科技大学,2009—2011年在美国西北大学做访问学者,现执教于河南工业大学。主要研究方向为高性能计算、大数据。发表SCI/EI 论文10余篇,出版国内外学术专著5部。
目录
- 第0章 Java学习指南
- 0.1 Java为什么重要 002
- 0.2 Java简史——带给我们的一点思考 003
- 0.3 Java应用领域和前景 008
- 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 享受安装成果——开发*一个Java程序 024
- 1.5 Eclipse的使用 025
- 1.5.1 Eclipse概述 025
- 1.5.2 创建Java项目 026
- 1.5.3 创建Java类文件 028
- 1.5.4 运行Java程序 029
- 1.6 高手点拨 030
- 1.7 实战练习 030
- 第 2章 Java程序要素概览
- 2.1 一个简单的例子 032
- 2.2 认识Java程序 033
- 2.2.1 Java程序的框架 034
- 2.2.2 标识符 035
- 2.2.3 关键字 035
- 2.2.4 注释 035
- 2.2.5 变量 036
- 2.2.6 数据类型 037
- 2.2.7 运算符和表达式 038
- 2.2.8 类 039
- 2.3 程序的检测 039
- 2.3.1 语法错误 039
- 2.3.2 语义错误 040
- 2.4 提高程序的可读性 041
- 2.5 高手点拨 042
- 2.6 实战练习 042
- 第3章 Java编程基础——常量、变量与数据类型
- 3.1 常量与变量 044
- 3.1.1 常量的声明与使用 044
- 3.1.2 变量的声明与使用 045
- 3.2 基本数据类型 049
- 3.2.1 数据类型的意义 049
- 3.2.2 整数类型 050
- 3.2.3 浮点类型 053
- 3.2.4 字符类型 054
- 3.2.5 布尔类型 056
- 3.3 高手点拨 057
- 3.4 实战练习 058
- 第4章 编程元素详解——运算符、表达式、语句与流程控制
- 4.1 运算符 060
- 4.1.1 赋值运算符 060
- 4.1.2 一元运算符 060
- 4.1.3 算术运算符 062
- 4.1.4 逻辑运算符 063
- 4.1.5 位运算符 066
- 4.1.6 三元运算符 067
- 4.1.7 关系运算符与if语句 068
- 4.1.8 递增与递减运算符 069
- 4.2 表达式 070
- 4.2.1 算术表达式与关系表达式 071
- 4.2.2 逻辑表达式与赋值表达式 071
- 4.2.3 表达式的类型转换 072
- 4.3 语句 074
- 4.3.1 语句中的空格 074
- 4.3.2 空语句 075
- 4.3.3 声明语句与赋值语句 075
- 4.4 程序的控制逻辑 076
- 4.4.1 顺序结构 076
- 4.4.2 选择结构 076
- 4.4.3 循环结构 077
- 4.5 选择结构 077
- 4.5.1 if语句 077
- 4.5.2 if…else语句 080
- 4.5.3 if…else if…else语句 082
- 4.5.4 多重选择──switch语句 083
- 4.6 循环结构 085
- 4.6.1 while循环 085
- 4.6.2 do…while循环 086
- 4.6.3 for循环 088
- 4.7 循环的跳转 090
- 4.7.1 break语句 090
- 4.7.2 continue语句 092
- 4.7.3 return语句 095
- 4.8 高手点拨 096
- 4.9 实战练习 096
- 第5章 数组与枚举
- 5.1 理解数组 098
- 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章 类和对象
- 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章 重复调用的代码块——方法
- 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
- 第Ⅱ篇 核心技术
- 第8章 类的封装、继承与多态
- 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章 抽象类与接口
- 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常用类库
- 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章 异常的捕获与处理
- 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
- 第Ⅲ篇 gao级应用
- 第 12章 多线程
- 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操作
- 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编程
- 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章 数据库编程
- 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初步
- 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章 常用设计框架
- 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编程基础
- 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
- 第Ⅳ篇 项目实战
- 第 19章 Android项目实战——智能电话回拨系统
- 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项目实战——我的饭票网
- 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下的数据处理
- 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集群的构建
- 安装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