技术教育社区
www.teccses.org

Java从入门到精通(第4版)

封面

作者:宁跃飞 史卫亚 张洪超

页数:436

出版社:人民邮电出版社

出版日期:2022

ISBN:9787115563385

电子书格式:pdf/epub/txt

内容简介

本书以零基础讲解为宗旨,用实例引导读者学习,深入浅出地介绍了Java的相关知识和实战技巧。
本书“第Ⅰ篇 基础知识”主要介绍Java开发环境搭建、Java程序要素、常量、变量、数据类型、运算符、表达式、语句、流程控制、数组、枚举、类、对象以及方法等,“第Ⅱ篇 核心技术”主要介绍类的封装、继承、多态、抽象类、接口、Java常用类库以及异常的捕获与处理等,“第Ⅲ篇 不错应用”主要介绍多线程、文件I/O操作、GUI编程、数据库编程、Java Web以及常用设计框架等,“第Ⅳ篇 项目实战”主要介绍中国象棋和我的饭票网等项目。此外,附赠的电子书中还介绍了Android编辑基础、Hadoop下的数据处理、全分布式Hadoop集群的构建等内容。
本书提供了与图书内容全程同步的视频教程,还赠送了大量相关学习资料,以便读者配合学习。
本书适合任何想学习Java的读者,无论你是否从事计算机相关行业,是否接触过Java,均可通过学习本书快速地掌握Java的开发方法和技巧。

作者简介

宁跃飞
工程硕士,副教授,现执教于郑州升达经贸管理学院信息工程学院。主要研究方向为计算机网络、物联网技术应用等。主持和参与科研(教研)项目9项,参与编写教材(专著)6部,发表相关科研(教研)论文10余篇。
史卫亚
博士,副教授,现执教于河南工业大学信息科学与工程学院。主要研究方向为机器学习、大数据检索、数据库、图像和视频处理、人工智能和模式识别等。先后在国内外核心期刊及会议上发表30多篇论文,参加多项国家自然科学基金、河南省科技攻关项目。
张洪超
电力工程师 ,河南工业大学计算机硕士。主要研究方向为图像和视频处理、基于人工智能的网络安全等。

本书特色

1.丰富、实用、专业的范例和项目
本书结合实际工作中的范例,逐一讲解Java的各种知识和技术;结尾还以实际开发项目来总结本书所学内容,帮助读者在实战中掌握知识,轻松获得项目经验。
2.习题要点汇总,随时检测自己的学习成果
每章开头给出了“本章要点”,以便读者明确学习方向。每章结尾的“实战练习”则根据所在章的知识点精心设计而成,读者可以随时进行自我检测,巩固所学知识。
3.随书附赠教学录像,书影同步,让你的学习更加立体简单
17小时全程同步教学录像,录像涵盖本书所有知识点,详细讲解每个范例及项目的开发过程与关键点,帮助读者更轻松地掌握书中所有的Java程序设计知识。
4.海量程序代码资源大放送
赠送大量资源,包括Java和Oracle项目实战教学录像、Java SE类库查询手册、Eclipse常用快捷键说明文档、Eclipse提示与技巧电子书、Java常见面试题、Java常见错误及解决方案、Java开发经验及技巧大汇总、Java程序员职业规划、Java程序员面试技巧。

目录

第 0 章 Java学习指南

0.1 Java为什么重要 002

0.2 Java简史——带给我们的一点思考 003

0.3 Java应用领域和前景 008

0.4 Java学习路线图 010

第 Ⅰ 篇基础知识

第 1 章 Java开发环境搭建

1.1 Java开发环境 013

1.2 下载与安装JDK 013

1.2.1 下载JDK 013

1.2.2 安装JDK 015

1.3 Java环境变量的配置 017

1.3.1 理解环境变量 017

1.3.2 JDK中的3个环境变量 018

1.4 享受安装成果—开发第 一个Java程序 023

1.5 Eclipse的使用 025

1.5.1 Eclipse概述 025

1.5.2 创建Java项目 026

1.5.3 创建Java类文件 027

1.5.4 运行Java程序 029

1.6 在AndroidStudio中运行Java程序 030

1.7 高手点拨 031

1.8 实战练习 032

第 2 章 Java程序要素概览

2.1 一个简单的例子 034

2.2 认识Java程序 035

2.2.1 Java程序的框架 035

2.2.2 标识符 036

2.2.3 关键字 037

2.2.4 注释 037

2.2.5 变量 038

2.2.6 数据类型 039

2.2.7 运算符和表达式 040

2.2.8 类 040

2.3 程序的检测 041

2.3.1 语法错误 041

2.3.2 语义错误 042

2.4 提高程序的可读性 042

2.5 综合实例——计算两数之和 043

2.6 高手点拨 044

2.7 实战练习 044

第 3 章 Java编程基础—常量、变量与数据类型

3.1 常量与变量 046

3.1.1 常量的声明与使用 046

3.1.2 变量的声明与使用 047

3.2 基本数据类型 051

3.2.1 数据类型的意义 051

3.2.2 整数类型 052

3.2.3 浮点数类型 055

3.2.4 字符类型 056

3.2.5 布尔类型 057

3.2.6 var类型 058

3.3 综合实例——var 类型和基本类型的比较 059

3.4 高手点拨 060

3.5 实战练习 060

第 4 章 编程元素详解——运算符、表达式、语句与流程控制

4.1 运算符 062

4.1.1 赋值运算符 062

4.1.2 一元运算符 062

4.1.3 算术运算符 064

4.1.4 逻辑运算符 065

4.1.5 位运算符 067

4.1.6 三元运算符 069

4.1.7 if 语句与关系运算符 070

4.1.8 递增与递减运算符 070

4.2 表达式 071

4.2.1 算术表达式与关系表达式 072

4.2.2 逻辑表达式与赋值表达式 073

4.2.3 表达式的类型转换 074

4.3 语句 075

4.3.1 语句中的空格 075

4.3.2 空语句 076

4.3.3 声明语句与赋值语句 077

4.4 程序的控制逻辑 077

4.4.1 顺序结构 077

4.4.2 选择结构 078

4.4.3 循环结构 078

4.5 选择结构 078

4.5.1 if 语句 079

4.5.2 if...else 语句 081

4.5.3 if...else if...else 语句 083

4.5.4 多重选择 switch 语句 084

4.6 循环结构 086

4.6.1 while 循环 086

4.6.2 do...while 循环 088

4.6.3 for 循环 089

4.7 循环的跳转 091

4.7.1 break 语句 091

4.7.2 continue 语句 093

4.7.3 return 语句 095

4.8 综合实例——模拟抛硬币一亿次 096

4.9 高手点拨 097

4.10 实战练习 098

第 5 章 数组与枚举

5.1 理解数组 100

5.2 一维数组 102

5.2.1 一维数组的声明与内存的分配 102

5.2.2 数组中元素的表示方法 103

5.2.3 数组元素的使用 104

5.3 二维数组 107

5.3.1 二维数组的声明与赋值 107

5.3.2 二维数组元素的引用及访问 108

5.4 枚举简介 109

5.5 Java 中的枚举 110

5.5.1 常见的枚举定义方法 110

5.5.2 在程序中使用枚举 110

5.5.3 在 switch 语句中使用枚举 111

5.6 综合实例——查找二维数组中的最大值 112

5.7 高手点拨 113

5.8 实战练习 113

第 6 章 类和对象

6.1 理解面向对象程序设计 116

6.1.1 面向对象程序设计简介 116

6.1.2 面向对象程序设计的基本特征 116

6.2 面向对象的基本概念 117

6.2.1 类 117

6.2.2 对象 117

6.2.3 类和对象的关系 117

6.3 类的声明与定义 118

6.3.1 类的声明 118

6.3.2 类的定义 119

6.4 类的属性 121

6.4.1 属性的定义 121

6.4.2 属性的使用 121

6.5 对象的声明与使用 124

6.5.1 对象的声明 124

6.5.2 对象的使用 125

6.5.3 匿名对象 127

6.6 综合实例——创建一个手机对象 128

6.7 高手点拨 129

6.8 实战练习 129

第 7 章 重复调用的代码块—方法

7.1 方法的基本定义 132

7.2 方法的使用 133

7.3 方法中的形参与实参 135

7.4 方法的重载 135

7.5 构造方法 139

7.5.1 构造方法的概念 139

7.5.2 构造方法的重载 141

7.5.3 构造方法的私有化 144

7.6 在方法内部调用方法 147

7.7 static方法 149

7.7.1 自定义static方法 149

7.7.2 static主方法 150

7.8 综合实例——求解一元二次方程 152

7.9 高手点拨 153

7.10 实战练习 153

第 Ⅱ 篇核心技术

第 8 章 类的封装、继承与多态

8.1 封装 157

8.1.1 Java访问权限修饰符 157

8.1.2 封装问题引例 157

8.1.3 类的封装实例 158

8.2 继承 164

8.2.1 Java中的继承 164

8.2.2 继承问题的引入 165

8.2.3 继承实现代码复用 166

8.2.4 继承的限制 167

8.3 覆写 170

8.3.1 属性的覆盖 170

8.3.2 方法的覆写 171

8.4 多态 174

8.4.1 多态的基本概念 174

8.4.2 方法的多态性 176

8.4.3 对象的多态性 177

8.5 综合实例—创建Person类和它的子类 178

8.6 高手点拨 180

8.7 实战练习 180

第 9 章 抽象类与接口

9.1 抽象类 182

9.1.1 抽象类的定义 182

9.1.2 抽象类的使用 182

9.2 接口 185

9.2.1 接口的基本概念 185

9.2.2 使用接口的原则 186

9.3 Lambda表达式 194

9.4 综合实例——实现USB接口 196

9.5 高手点拨 197

9.6 实战练习 197

第 10章 Java常用类库

10.1 类库的概念 200

10.2 基本数据类型的包装类 200

10.2.1 装箱与拆箱 201

10.2.2 基本数据类型与字符串的转换 202

10.3 String类 204

10.3.1 String类的声明 205

10.3.2 String类中常用的方法 206

10.4 Math与Random类 209

10.4.1 Math类的使用 209

10.4.2 Random类的使用 211

10.5 综合实例——验证身份证号码是否合法 212

10.6 高手点拨 214

10.7 实战练习 214

第 11章 异常的捕获与处理

11.1 异常的基本概念 216

11.1.1 简单的异常范例 216

11.1.2 异常的处理 217

11.2 异常类的处理流程 223

11.3 throws 关键字 224

11.4 throw 关键字 225

11.5 异常处理的标准格式 226

11.6 综合实例——数组的创建与查找 227

11.7 高手点拨 228

11.8 实战练习 228

第 Ⅲ 篇高级应用

第 12章 多线程

12.1 感知多线程 231

12.2 体验多线程 231

12.2.1 通过继承 Thread 类实现多线程 232

12.2.2 通过实现 Runnable 接口实现多线程 234

12.2.3 两种多线程实现机制的比较 236

12.2.4 Java 8 中运行线程的新方法 239

12.3 线程的状态 240

12.4 线程操作的一些方法 242

12.4.1 取得和设置线程的名称 242

12.4.2 判断线程是否启动 245

12.4.3 守护线程与 setDaemon() 方法 246

12.4.4 线程的联合 247

12.5 综合实例——龟兔赛跑 248

12.6 高手点拨 249

12.7 实战练习 250

第 13章 文件 I/O 操作

13.1 输入 / 输出的重要性 252

13.2 读写文本文件 252

13.2.1 File 文件类 252

13.2.2 文本文件的操作 254

13.2.3 字符编码问题 257

13.3 文本的I/O 260

13.3.1 读入文本单词 260

13.3.2 读入单个字符 261

13.3.3 判断字符分类的方法 261

13.3.4 读入一行文本 261

13.3.5 将字符转换为数字 262

13.4 使用 try-with-resources 自动关闭资源 263

13.5 命令行参数的使用 265

13.5.1 System 类对 I/O 的支持 265

13.5.2 Java 命令行参数解析 266

13.6 综合实例——文本替换程序 268

13.7 高手点拨 269

13.8 实战练习 270

第 14章 GUI 编程

14.1 GUI 概述 272

14.2 JavaFX 与 Swing 以及 AWT 的比较 272

14.2.1 JavaFX 程序的基本结构 272

14.2.2 GUI 与AWT 276

14.2.3 Swing 和 AWT 的区别与联系 276

14.3 AWT 容器 277

14.3.1 Frame 窗口 277

14.3.2 Panel 面板 280

14.3.3 布局管理器 281

14.4 AWT 常用组件 286

14.4.1 按钮与标签组件 287

14.4.2 文本域 289

14.4.3 图形控件 290

14.5 事件处理 291

14.5.1 事件处理的流程 292

14.5.2 常用的事件 293

14.5.3 事件处理小实例——会动的小乌龟 297

14.6 Swing概述 299

14.7 Swing的基本组件 300

14.7.1 JTable表格 301

14.7.2 JComboBox下拉列表框 302

14.7.3 组件的常用方法 303

14.8 综合实例——简易学生管理系统 304

14.9 高手点拨 306

14.10 实战练习 306

第 15章 数据库编程

15.1 数据库概述 308

15.2 Java数据库连接利器——JDBC 308

15.3 轻量级数据库——SQLite 308

15.3.1 SQLite的准备工作 308

15.3.2 用Java连接SQLite 310

15.3.3 创建数据表 312

15.3.4 更新数据表 313

15.3.5 查询数据表 318

15.4 MySQL数据库 319

15.4.1 MySQL数据库的基本命令 320

15.4.2 在Java中使用MySQL数据库 322

15.5 综合实例—简易学生信息管理系统 324

15.5.1 基本数据结构 324

15.5.2 数据库操作有关工具类 325

15.5.3 主界面的构造 328

15.5.4 用于输入新数据的对话框实现 331

15.6 高手点拨 333

15.7 实战练习 334

第 16章 Java Web初步

16.1 JSP概述 336

16.2 JSP的运行环境 336

16.2.1 安装Tomcat 336

16.2.2 配置虚拟目录 338

16.2.3 编写第 一个JSP程序 340

16.2.4 Tomcat执行流程 341

16.3 基础语法 341

16.3.1 显式注释与隐式注释 341

16.3.2 代码段 342

16.3.3 page指令 344

16.3.4 包含指令 346

16.3.5 跳转指令 349

16.4 内置对象 350

16.4.1 request对象 351

16.4.2 response对象 354

16.5 Servlet 359

16.5.1 Servlet简介 359

16.5.2 第 一个Servlet程序 360

16.6 综合实例—简易通信地址管理系统 363

16.6.1 基本数据结构 363

16.6.2 连接数据库的工具类 365

16.6.3 构造Servlet类 366

16.6.4 构造JSP 367

16.7 高手点拨 370

16.8 实战练习 370

第 17章 常用设计框架

17.1 框架的内涵 372

17.2 Struts 开发基础 372

17.2.1 Struts简介 372

17.2.2 MVC的基本概念 373

17.2.3 下载Struts 2 类库 373

17.2.4 从Struts 2的角度理解MVC 374

17.2.5 第 一个Struts 2 实例 374

17.2.6 运行测试strutsLoginDemo工程 384

17.2.7 小结 384

17.3 Spring快速上手 385

17.3.1 Spring基本知识 385

17.3.2 Spring开发准备 385

17.3.3 Spring框架配置 386

17.3.4 Spring开发实例 388

17.4 Hibernate 入门 393

17.4.1 Hibernate 开发基础 393

17.4.2 Hibernate 开发准备 393

17.4.3 Hibernate 开发实例 395

17.5 综合实例——基于 SSH 的订单系统 404

17.5.1 项目初始化 404

17.5.2 预模型层的开发 405

17.5.3 持久层的配置 406

17.5.4 业务层的开发和配置 407

17.5.5 DAO 接口的定义和实现 408

17.5.6 业务层的配置 409

17.5.7 UI 层的实现 409

17.6 高手点拨 412

17.7 实战练习 412

第 Ⅳ 篇项目实战

第 18章 Java 项目实战——中国象棋

18.1 项目概述 415

18.1.1 功能描述 415

18.1.2 中国象棋简介 415

18.1.3 中国象棋棋盘 415

18.1.4 中国象棋棋子 415

18.2 总体设计 416

18.3 代码实现 416

18.3.1 引用类包及类的定义 416

18.3.2 图形用户界面模块 417

18.3.3 按钮的操作模块 417

18.3.4 棋子的操作模块 417

18.3.5 棋子的移动规则类模块 418

18.3.6 运行程序 418

第 19章 Java Web 项目实战——我的饭票网

19.1 系统分析 420

19.2 系统设计 420

19.3 数据库设计 420

19.3.1 功能分析 420

19.3.2 基本表设计 421

19.4 用户注册模块设计 424

19.4.1 用户注册模块概述 425

19.4.2 与用户注册有关的数据库连接及操作类 425

19.4.3 用户注册界面设计 428

19.4.4 用户注册事件处理页面 429

19.5 用户登录模块设计 430

19.5.1 用户登录模块概述 430

19.5.2 与用户登录有关的数据库连接及操作类 430

19.5.3 用户登录界面设计 431

19.5.4 用户登录验证处理页面 432

19.6 用户主页面模块设计 433

19.6.1 用户主页面模块概述 433

19.6.2 与用户主页面有关的数据库连接及操作类 433

19.6.3 用户主页面界面设计 435

19.7 高手点拨 436

19.8 实战练习 436

(以下内容为电子书)

第 20章 Android 编程基础

20.1 Android 简介 438

20.1.1 Android 系统架构 438

20.1.2 Android 应用开发特色 438

20.2 搭建开发环境 438

20.2.1 准备所需要的软件 439

20.2.2 搭建开发环境 439

20.3 创建第 一个 Android 项目 442

20.3.1 创建 HelloWorld 项目 442

20.3.2 运行 HelloWorld 项目 443

20.3.3 解析第 一个 Android 程序 445

20.4 详解基本布局 447

20.4.1 线性布局 447

20.4.2 相对布局 451

20.4.3 帧布局 454

20.5 常见控件的使用方法 455

20.5.1 TextView 455

20.5.2 EditText 457

20.5.3 Button 458

20.5.4 ImageView 461

20.6 Activity详细介绍 462

20.6.1 Activity的生命周期 462

20.6.2 Activity的状态 462

20.6.3 Activity的启动模式 462

20.7 综合实例——编写聊天界面 463

20.7.1 制作Nine-Patch图片 464

20.7.2 编写聊天界面 465

20.8 高手点拨 470

20.9 实战练习 470

第 21章 大数据项目实战——Hadoop下的数据处理

21.1 认识Hadoop 472

21.2 理解MapReduce编程范式 473

21.3 第 一个Hadoop实例——WordCount代码详解 473

21.3.1 WordCount基本流程 474

21.3.2 WordCount代码详解 475

21.3.3 运行WordCount程序 478

21.4 面向K-Means聚类算法的Hadoop实践 482

21.4.1 K-Means聚类算法简介 482

21.4.2 基于MapReduce的K-Means算法实现 484

21.4.3 编写K-Means算法代码 484

21.4.4 在Hadoop集群运行KMeans项目 506

21.5 高手点拨 510

21.6 实战练习 510

附录 全分布式Hadoop集群的构建

安装CentOS 7 511

安装Java并配置环境变量 512

安装Hadoop 514

下载Hadoop包 514

安装Hadoop的方法 514

Hadoop的运行模式 514

本地模式(Local Model) 514

伪分布模式(Pseudo-Distributed Model) 515

全分布模式(Fully Distributed Model) 515

Hadoop集群构建 515

设置静态IP地址 515

修改hosts文件 517

安装和配置SSH服务 517

安装SSH 518

SSH免密码登录 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

下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《Java从入门到精通(第4版)》
Article link:https://www.teccses.org/1346428.html