Java从入门到精通(第4版)
作者: 宁跃飞 史卫亚 张洪超
出版社:人民邮电出版社 2022-04-01
简介:本书以零基础讲解为宗旨,用实例引导读者学习,深入浅出地介绍了Java的相关知识和实战技巧。本书“第Ⅰ篇 基础知识”主要介绍Java开发环境搭建、Java程序要素、常量、变量、数据类型、运算符、表达式、语句、流程控制、数组、枚举、类、对象以及方法等,“第Ⅱ篇 核心技术”主要介绍类的封装、继承、多态、抽象类、接口、Java常用类库以及异常的捕获与处理等,“第Ⅲ篇 高级应用”主要介绍多线程、文件I/O操作、GUI编程、数据库编程、Java Web以及常用设计框架等,“第Ⅳ篇 项目实战”主要介绍中国象棋和我的饭票网等项目。此外,附赠的电子书中还介绍了Android编辑基础、Hadoop下的数据处理、全分布式Hadoop集群的构建等内容。本书提供了与图书内容全程同步的视频教程,还赠送了大量相关学习资料,以便读者配合学习。本书适合任何想学习Java的读者,无论你是否从事计算机相关行业,是否接触过Java,均可通过学习本书快速地掌握Java的开发方法和技巧。【目录】第 0 章 Java学习指南0.1 Java为什么重要 0020.2 Java简史——带给我们的一点思考 0030.3 Java应用领域和前景 0080.4 Java学习路线图 010第 Ⅰ 篇基础知识第 1 章 Java开发环境搭建1.1 Java开发环境 0131.2 下载与安装JDK 0131.2.1 下载JDK 0131.2.2 安装JDK 0151.3 Java环境变量的配置 0171.3.1 理解环境变量 0171.3.2 JDK中的3个环境变量 0181.4 享受安装成果—开发第 一个Java程序 0231.5 Eclipse的使用 0251.5.1 Eclipse概述 0251.5.2 创建Java项目 0261.5.3 创建Java类文件 0271.5.4 运行Java程序 0291.6 在AndroidStudio中运行Java程序 0301.7 高手点拨 0311.8 实战练习 032第 2 章 Java程序要素概览2.1 一个简单的例子 0342.2 认识Java程序 0352.2.1 Java程序的框架 0352.2.2 标识符 0362.2.3 关键字 0372.2.4 注释 0372.2.5 变量 0382.2.6 数据类型 0392.2.7 运算符和表达式 0402.2.8 类 0402.3 程序的检测 0412.3.1 语法错误 0412.3.2 语义错误 0422.4 提高程序的可读性 0422.5 综合实例——计算两数之和 0432.6 高手点拨 0442.7 实战练习 044第 3 章 Java编程基础—常量、变量与数据类型3.1 常量与变量 0463.1.1 常量的声明与使用 0463.1.2 变量的声明与使用 0473.2 基本数据类型 0513.2.1 数据类型的意义 0513.2.2 整数类型 0523.2.3 浮点数类型 0553.2.4 字符类型 0563.2.5 布尔类型 0573.2.6 var类型 0583.3 综合实例——var 类型和基本类型的比较 0593.4 高手点拨 0603.5 实战练习 060第 4 章 编程元素详解——运算符、表达式、语句与流程控制4.1 运算符 0624.1.1 赋值运算符 0624.1.2 一元运算符 0624.1.3 算术运算符 0644.1.4 逻辑运算符 0654.1.5 位运算符 0674.1.6 三元运算符 0694.1.7 if 语句与关系运算符 0704.1.8 递增与递减运算符 0704.2 表达式 0714.2.1 算术表达式与关系表达式 0724.2.2 逻辑表达式与赋值表达式 0734.2.3 表达式的类型转换 0744.3 语句 0754.3.1 语句中的空格 0754.3.2 空语句 0764.3.3 声明语句与赋值语句 0774.4 程序的控制逻辑 0774.4.1 顺序结构 0774.4.2 选择结构 0784.4.3 循环结构 0784.5 选择结构 0784.5.1 if 语句 0794.5.2 if...else 语句 0814.5.3 if...else if...else 语句 0834.5.4 多重选择 switch 语句 0844.6 循环结构 0864.6.1 while 循环 0864.6.2 do...while 循环 0884.6.3 for 循环 0894.7 循环的跳转 0914.7.1 break 语句 0914.7.2 continue 语句 0934.7.3 return 语句 0954.8 综合实例——模拟抛硬币一亿次 0964.9 高手点拨 0974.10 实战练习 098第 5 章 数组与枚举5.1 理解数组 1005.2 一维数组 1025.2.1 一维数组的声明与内存的分配 1025.2.2 数组中元素的表示方法 1035.2.3 数组元素的使用 1045.3 二维数组 1075.3.1 二维数组的声明与赋值 1075.3.2 二维数组元素的引用及访问 1085.4 枚举简介 1095.5 Java 中的枚举 1105.5.1 常见的枚举定义方法 1105.5.2 在程序中使用枚举 1105.5.3 在 switch 语句中使用枚举 1115.6 综合实例——查找二维数组中的值 1125.7 高手点拨 1135.8 实战练习 113第 6 章 类和对象6.1 理解面向对象程序设计 1166.1.1 面向对象程序设计简介 1166.1.2 面向对象程序设计的基本特征 1166.2 面向对象的基本概念 1176.2.1 类 1176.2.2 对象 1176.2.3 类和对象的关系 1176.3 类的声明与定义 1186.3.1 类的声明 1186.3.2 类的定义 1196.4 类的属性 1216.4.1 属性的定义 1216.4.2 属性的使用 1216.5 对象的声明与使用 1246.5.1 对象的声明 1246.5.2 对象的使用 1256.5.3 匿名对象 1276.6 综合实例——创建一个手机对象 1286.7 高手点拨 1296.8 实战练习 129第 7 章 重复调用的代码块—方法7.1 方法的基本定义 1327.2 方法的使用 1337.3 方法中的形参与实参 1357.4 方法的重载 1357.5 构造方法 1397.5.1 构造方法的概念 1397.5.2 构造方法的重载 1417.5.3 构造方法的私有化 1447.6 在方法内部调用方法 1477.7 static方法 1497.7.1 自定义static方法 1497.7.2 static主方法 1507.8 综合实例——求解一元二次方程 1527.9 高手点拨 1537.10 实战练习 153第 Ⅱ 篇核心技术第 8 章 类的封装、继承与多态8.1 封装 1578.1.1 Java访问权限修饰符 1578.1.2 封装问题引例 1578.1.3 类的封装实例 1588.2 继承 1648.2.1 Java中的继承 1648.2.2 继承问题的引入 1658.2.3 继承实现代码复用 1668.2.4 继承的限制 1678.3 覆写 1708.3.1 属性的覆盖 1708.3.2 方法的覆写 1718.4 多态 1748.4.1 多态的基本概念 1748.4.2 方法的多态性 1768.4.3 对象的多态性 1778.5 综合实例—创建Person类和它的子类 1788.6 高手点拨 1808.7 实战练习 180第 9 章 抽象类与接口9.1 抽象类 1829.1.1 抽象类的定义 1829.1.2 抽象类的使用 1829.2 接口 1859.2.1 接口的基本概念 1859.2.2 使用接口的原则 1869.3 Lambda表达式 1949.4 综合实例——实现USB接口 1969.5 高手点拨 1979.6 实战练习 197第 10章 Java常用类库10.1 类库的概念 20010.2 基本数据类型的包装类 20010.2.1 装箱与拆箱 20110.2.2 基本数据类型与字符串的转换 20210.3 String类 20410.3.1 String类的声明 20510.3.2 String类中常用的方法 20610.4 Math与Random类 20910.4.1 Math类的使用 20910.4.2 Random类的使用 21110.5 综合实例——验证身份证号码是否合法 21210.6 高手点拨 21410.7 实战练习 214第 11章 异常的捕获与处理11.1 异常的基本概念 21611.1.1 简单的异常范例 21611.1.2 异常的处理 21711.2 异常类的处理流程 22311.3 throws 关键字 22411.4 throw 关键字 22511.5 异常处理的标准格式 22611.6 综合实例——数组的创建与查找 22711.7 高手点拨 22811.8 实战练习 228第 Ⅲ 篇高级应用第 12章 多线程12.1 感知多线程 23112.2 体验多线程 23112.2.1 通过继承 Thread 类实现多线程 23212.2.2 通过实现 Runnable 接口实现多线程 23412.2.3 两种多线程实现机制的比较 23612.2.4 Java 8 中运行线程的新方法 23912.3 线程的状态 24012.4 线程操作的一些方法 24212.4.1 取得和设置线程的名称 24212.4.2 判断线程是否启动 24512.4.3 守护线程与 setDaemon() 方法 24612.4.4 线程的联合 24712.5 综合实例——龟兔赛跑 24812.6 高手点拨 24912.7 实战练习 250第 13章 文件 I/O 操作13.1 输入 / 输出的重要性 25213.2 读写文本文件 25213.2.1 File 文件类 25213.2.2 文本文件的操作 25413.2.3 字符编码问题 25713.3 文本的I/O 26013.3.1 读入文本单词 26013.3.2 读入单个字符 26113.3.3 判断字符分类的方法 26113.3.4 读入一行文本 26113.3.5 将字符转换为数字 26213.4 使用 try-with-resources 自动关闭资源 26313.5 命令行参数的使用 26513.5.1 System 类对 I/O 的支持 26513.5.2 Java 命令行参数解析 26613.6 综合实例——文本替换程序 26813.7 高手点拨 26913.8 实战练习 270第 14章 GUI 编程14.1 GUI 概述 27214.2 JavaFX 与 Swing 以及 AWT 的比较 27214.2.1 JavaFX 程序的基本结构 27214.2.2 GUI 与AWT 27614.2.3 Swing 和 AWT 的区别与联系 27614.3 AWT 容器 27714.3.1 Frame 窗口 27714.3.2 Panel 面板 28014.3.3 布局管理器 28114.4 AWT 常用组件 28614.4.1 按钮与标签组件 28714.4.2 文本域 28914.4.3 图形控件 29014.5 事件处理 29114.5.1 事件处理的流程 29214.5.2 常用的事件 29314.5.3 事件处理小实例——会动的小乌龟 29714.6 Swing概述 29914.7 Swing的基本组件 30014.7.1 JTable表格 30114.7.2 JComboBox下拉列表框 30214.7.3 组件的常用方法 30314.8 综合实例——简易学生管理系统 30414.9 高手点拨 30614.10 实战练习 306第 15章 数据库编程15.1 数据库概述 30815.2 Java数据库连接利器——JDBC 30815.3 轻量级数据库——SQLite 30815.3.1 SQLite的准备工作 30815.3.2 用Java连接SQLite 31015.3.3 创建数据表 31215.3.4 更新数据表 31315.3.5 查询数据表 31815.4 MySQL数据库 31915.4.1 MySQL数据库的基本命令 32015.4.2 在Java中使用MySQL数据库 32215.5 综合实例—简易学生信息管理系统 32415.5.1 基本数据结构 32415.5.2 数据库操作有关工具类 32515.5.3 主界面的构造 32815.5.4 用于输入新数据的对话框实现 33115.6 高手点拨 33315.7 实战练习 334第 16章 Java Web初步16.1 JSP概述 33616.2 JSP的运行环境 33616.2.1 安装Tomcat 33616.2.2 配置虚拟目录 33816.2.3 编写第 一个JSP程序 34016.2.4 Tomcat执行流程 34116.3 基础语法 34116.3.1 显式注释与隐式注释 34116.3.2 代码段 34216.3.3 page指令 34416.3.4 包含指令 34616.3.5 跳转指令 34916.4 内置对象 35016.4.1 request对象 35116.4.2 response对象 35416.5 Servlet 35916.5.1 Servlet简介 35916.5.2 第 一个Servlet程序 36016.6 综合实例—简易通信地址管理系统 36316.6.1 基本数据结构 36316.6.2 连接数据库的工具类 36516.6.3 构造Servlet类 36616.6.4 构造JSP 36716.7 高手点拨 37016.8 实战练习 370第 17章 常用设计框架17.1 框架的内涵 37217.2 Struts 开发基础 37217.2.1 Struts简介 37217.2.2 MVC的基本概念 37317.2.3 下载Struts 2 类库 37317.2.4 从Struts 2的角度理解MVC 37417.2.5 第 一个Struts 2 实例 37417.2.6 运行测试strutsLoginDemo工程 38417.2.7 小结 38417.3 Spring快速上手 38517.3.1 Spring基本知识 38517.3.2 Spring开发准备 38517.3.3 Spring框架配置 38617.3.4 Spring开发实例 38817.4 Hibernate 入门 39317.4.1 Hibernate 开发基础 39317.4.2 Hibernate 开发准备 39317.4.3 Hibernate 开发实例 39517.5 综合实例——基于 SSH 的订单系统 40417.5.1 项目初始化 40417.5.2 预模型层的开发 40517.5.3 持久层的配置 40617.5.4 业务层的开发和配置 40717.5.5 DAO 接口的定义和实现 40817.5.6 业务层的配置 40917.5.7 UI 层的实现 40917.6 高手点拨 41217.7 实战练习 412第 Ⅳ 篇项目实战第 18章 Java 项目实战——中国象棋18.1 项目概述 41518.1.1 功能描述 41518.1.2 中国象棋简介 41518.1.3 中国象棋棋盘 41518.1.4 中国象棋棋子 41518.2 总体设计 41618.3 代码实现 41618.3.1 引用类包及类的定义 41618.3.2 图形用户界面模块 41718.3.3 按钮的操作模块 41718.3.4 棋子的操作模块 41718.3.5 棋子的移动规则类模块 41818.3.6 运行程序 418第 19章 Java Web 项目实战——我的饭票网19.1 系统分析 42019.2 系统设计 42019.3 数据库设计 42019.3.1 功能分析 42019.3.2 基本表设计 42119.4 用户注册模块设计 42419.4.1 用户注册模块概述 42519.4.2 与用户注册有关的数据库连接及操作类 42519.4.3 用户注册界面设计 42819.4.4 用户注册事件处理页面 42919.5 用户登录模块设计 43019.5.1 用户登录模块概述 43019.5.2 与用户登录有关的数据库连接及操作类 43019.5.3 用户登录界面设计 43119.5.4 用户登录验证处理页面 43219.6 用户主页面模块设计 43319.6.1 用户主页面模块概述 43319.6.2 与用户主页面有关的数据库连接及操作类 43319.6.3 用户主页面界面设计 43519.7 高手点拨 43619.8 实战练习 436(以下内容为电子书)第 20章 Android 编程基础20.1 Android 简介 43820.1.1 Android 系统架构 43820.1.2 Android 应用开发特色 43820.2 搭建开发环境 43820.2.1 准备所需要的软件 43920.2.2 搭建开发环境 43920.3 创建第 一个 Android 项目 44220.3.1 创建 HelloWorld 项目 44220.3.2 运行 HelloWorld 项目 44320.3.3 解析第 一个 Android 程序 44520.4 详解基本布局 44720.4.1 线性布局 44720.4.2 相对布局 45120.4.3 帧布局 45420.5 常见控件的使用方法 45520.5.1 TextView 45520.5.2 EditText 45720.5.3 Button 45820.5.4 ImageView 46120.6 Activity详细介绍 46220.6.1 Activity的生命周期 46220.6.2 Activity的状态 46220.6.3 Activity的启动模式 46220.7 综合实例——编写聊天界面 46320.7.1 制作Nine-Patch图片 46420.7.2 编写聊天界面 46520.8 高手点拨 47020.9 实战练习 470第 21章 大数据项目实战——Hadoop下的数据处理21.1 认识Hadoop 47221.2 理解MapReduce编程范式 47321.3 第 一个Hadoop实例——WordCount代码详解 47321.3.1 WordCount基本流程 47421.3.2 WordCount代码详解 47521.3.3 运行WordCount程序 47821.4 面向K-Means聚类算法的Hadoop实践 48221.4.1 K-Means聚类算法简介 48221.4.2 基于MapReduce的K-Means算法实现 48421.4.3 编写K-Means算法代码 48421.4.4 在Hadoop集群运行KMeans项目 50621.5 高手点拨 51021.6 实战练习 510附录 全分布式Hadoop集群的构建安装CentOS 7 511安装Java并配置环境变量 512安装Hadoop 514下载Hadoop包 514安装Hadoop的方法 514Hadoop的运行模式 514本地模式(Local Model) 514伪分布模式(Pseudo-Distributed Model) 515全分布模式(Fully Distributed Model) 515Hadoop集群构建 515设置静态IP地址 515修改hosts文件 517安装和配置SSH服务 517安装SSH 518SSH免密码登录 518虚拟机的配置文件同步 520全分布模式下配置Hadoop 520配置Hadoop环境变量 520配置hadoop-env.sh文件 521配置HDFS的主节点(core-site.xml文件) 522配置slaves文件 523配置yarn-site.xml文件 524配置mapred-site.xml文件 525验证全分布模式 526默认配置文件所在位置 527关闭Hadoop 528