项目驱动零起点学Java

项目驱动零起点学Java"

作者:马士兵、赵珊珊
ISBN:9787302598084
定价:¥69.80
字数:千字
页数:
出版时间:2022.01.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

《项目驱动零起点学Java》共分 13 章,围绕 6 个项目和 258 个代码示例,分别介绍了走进Java 的世界、变量与数据类型、运算符、流程控制、方法、数组、面向对象、异常、常用类、集合、I/O流、多线程、网络编程相关内容。《项目驱动零起点学Java》总结了马士兵老师从事Java培训十余年来经受了市场检验的教研成果,通过6 个项目以及每章的示例和习题,可以帮助读者快速掌握Java 编程的语法以及算法实现。扫描每章提供的二维码可观看相应章节内容的视频讲解。

前言

马士兵教育一直致力于将Java 生根于中国,向社会输送更多优质编程人才,自展开业务以来始终秉承“不忘初心,精耕细作”的教研精神,立志成为中国IT互联网教育培训行业的领创者。

本人作为马士兵教育的创始人,一路披荆斩棘、兢兢业业奋斗 20 余年,积累了丰富的“培”“训”经验,形成了很多优质独特的教学理论和方法。在追求稳步发展的前提下,一直不断创新,努力追求更优质的教学方案、更完善的培养机制、更良好的学习环境、更可靠的就业保障,始终保持与时俱进的精神,培养更符合现代互联网产业需求的专业技术人才。马士兵教育将陆续推出系列丛书,为广大编程爱好者提供更多更好的素材资源。

我们深知学员的学习诉求,本书不同于市面上偏重理论的书籍,而是利用通俗易懂的语言由浅入深地讲解,由项目驱动学习 Java 编程。本书综合 6 个完整项目、258 个代码示例,配合每章练习题,并辅助全套知识点讲解视频,方便读者学习、提升。

学习资源获取方式

我们在“清大文森学堂”打造了本书官网,读者扫码即可获得所有项目代码和讲解视频,同时我们的老师也会随时为大家答疑解惑。 

本书内容

本书提供了从Java入门到编程高手必备的各类知识,共分13章,整体结构如下。

第1章:介绍Java的由来,Java开发环境的搭建,带领读者编写第一个Java程序,介绍集成开发环境IDEA的使用。

第2章:介绍Java语法中的标识符、关键字、变量与数据类型、数据类型之间的转换,以及如何获取用户输入数据和常量。

第3章:介绍Java中的运算符和运算符的优先级别。

第4章:介绍Java代码如何通过分支结构、循环结构实现对流程的控制,以及小鲨鱼收支记账软件项目的案例演示。

第5章:介绍如何在Java中定义方法,实现对方法的调用、方法的参数传递、方法的重载及递归。

第6章:数组是Java中的重要数据结构,本章主要介绍数组的创建方法和数组的常用操作,以及双色球彩票系统项目的案例演示。

第7章:介绍如何在Java中创建类,讲解面向对象的三大特性,即封装、继承、多态,以及比萨自助点餐系统和坦克大战之分解1项目的案例演示。

第8章:介绍Java中的异常,包括异常的捕获、异常的分类、throws和throw关键字,以及两个关键字的区别,最后介绍了自定义异常。

第9章:介绍Java中的File类、包装类、Math类、Random类、枚举类、日期时间相关类、字符串相关类。

第10章:集合是Java中另一类常用的容器,介绍了使用集合的原因、集合的体系结构、Collection接口、List接口、泛型、Set接口、Map接口、Collections类的使用,以及坦克大战之分解2项目的案例演示。

第11章:介绍Java中的多种I/O流,包括字节流、字符流、转换流、打印流、数据流、对象流,以及序列化和反序列化。

第12章:介绍进程与线程的区别、创建线程的三种方式、线程的生命周期、线程的常用方法、线程安全问题、线程池,以及生产者消费者模型和坦克大战之分解3项目的案例演示。

第13章:介绍网络编程之网络通信三要素、TCP和UDP两种通信方式,以及模拟网站登录项目的案例演示。

本书特色

项目、示例、知识点穿插讲解。本书中贯穿6个完整项目,经过作者多年教学经验提炼而成,项目从小到大、从短到长,可以让读者在练习项目的过程中,快速掌握系列知识点。

内容由浅入深,适合读者快速掌握Java,学以致用。Java语言经过数十年的发展,体系逐渐变得庞大而复杂,本书芟繁就简,提炼最为重要的知识点,可以让读者轻松上手。

配套独立视频课程。本书配套有独立课程,独立课程中提供了扩展内容。

本书使用说明

本书的 6 个项目,其中“坦克大战”是最大的项目,分布在 3 章进行讲解,其余 5 个项目分别在不同章中讲解。

对所有项目的理解需要掌握前面已经讲解的知识,建议读者边看书、边编写代码,可以达到事半功倍的效果。

如果遇到问题,扫描学习资源获取二维码,即可获得老师的帮助。

项目驱动—小鲨鱼收支记账软件(4.2 节)。

编写一款简单的记账软件,可掌握Java 类、变量、打印和流程控制。

项目驱动—双色球彩票系统(6.3 节、6.4.2 小节)。

编写一个彩票系统,使用数组存储号码。

项目驱动—比萨自助点餐系统(7.10.6 小节)。

使用面向对象的编程方法,利用封装和继承编写一个比萨自助点餐系统。

项目驱动—坦克大战(7.16节、10.9节、12.7 节)。

坦克大战项目融合了流程控制、数组、面向对象、集合、多线程等多个知识点,整个项目实现比较复杂。坦克大战游戏中需要GUI技术,读者可边学边用,不必花费专门的时间学习研究GUI知识。

项目驱动—生产者消费者模型(12.6 节)。

利用面向对象、线程通信的知识,定义商品类,创建生产者和消费者,解决数据错乱问题。

项目驱动—模拟网站登录(13.3 节)。

创建客户端和服务器端,客户端向服务器端发送数据,服务器端接收数据后进行回复。

读者对象

从零开始学习Java的读者;编程爱好者;互联网、IT公司从业人员;大中专院校的老师和学生;相关培训机构的老师和学员;初、中级程序开发人员。

本书由马士兵教育联合清华大学出版社出品。本人马士兵担任主审和主编,主要参与人员还有来自马士兵教育的赵珊珊。历时一年,我们在编写本书的过程中付出了很多努力,得到了很多帮助,在此一并表达感谢!由于水平有限,书中难免存在疏漏,恳请大家批评指正。

目录

第 1 章 走进Java 的世界 1

1.1 Java 简史 1

1.2 Java 的特点 2

1.3 Java 跨平台原理 3

1.4 Java 开发环境的搭建 4

1.4.1 什么是JDK 4

1.4.2 JDK的安装 4

1.4.3 环境变量的配置 6

1.4.4 开发环境测试 8

1.5 编写和运行第一个 Java 程序 8

1.6 注释 10

1.6.1 单行注释 10

1.6.2 多行注释 10

1.6.3 文档注释 11

1.7 使用IDEA开发Java 程序 11

1.7.1 IDEA的下载 11

1.7.2 IDEA的安装 12

1.7.3 使用IDEA开发Java 程序 16

本章小结 23

练习题 23

第 2 章 变量与数据类型 25

2.1 标识符 25

2.2 关键字 26

2.3 变量 26

2.3.1 变量的声明和赋值 26

2.3.2 变量的使用 27

2.3.3 变量的内存分析 27

2.3.4 变量的作用域 28

2.4 数据类型 29

2.5 基本数据类型之间的转换 31

2.5.1 自动类型转换 31

2.5.2 强制类型转换 32

2.6 获取用户终端输入 32

2.7 常量 33

本章小结 34

练习题 34

第 3 章 运算符 36

3.1 算术运算符 36

3.2 赋值运算符和扩展赋值运算符 37

3.3 关系运算符 37

3.4 逻辑运算符 38

3.5 条件运算符 39

3.6 位运算符 40

3.7 运算符的优先级别 41

本章小结 42

练习题 42

第 4 章 流程控制 44

4.1 分支结构 44

4.1.1 if 分支 44

4.1.2 switch 分支 49

4.2 项目驱动——小鲨鱼收支记账软件 50

4.3 循环结构 51

4.3.1 while 循环 52

4.3.2 for 循环 57

4.3.3 do…while 循环 58

4.4 循环控制关键字 59

4.4.1 break 59

4.4.2 continue 60

本章小结 62

练习题 62

第 5 章 方法 64

5.1 方法的定义 64

5.2 方法的调用 65

5.3 方法的定义、调用小结 66

5.4 方法的参数传递 67

5.5 方法的重载 69

5.6 递归 70

本章小结 71

练习题 71

第 6 章 数组 73

6.1 数组的介绍 73

6.2 数组的声明和赋值 73

6.3 项目驱动——双色球彩票系统 1 76

6.4 数组的常用操作 78

6.4.1 遍历操作 78

6.4.2 项目驱动——双色球彩票系统 2 79

6.4.3 查找元素 83

6.4.4 插入元素 84

6.4.5 删除元素 85

6.4.6 最值问题 86

6.4.7 排序算法 88

6.5 Arrays 工具类的使用 89

6.6 二维数组 90

本章小结 93

练习题 94

第 7 章 面向对象 96

7.1 面向对象和面向过程的关系 96

7.2 类和对象 96

7.2.1 类的编写 97

7.2.2 对象的创建和使用 97

7.3 成员变量和局部变量 99

7.4 构造器 99

7.4.1 构造器的定义 100

7.4.2 构造器的重载 101

7.5 this 关键字 102

7.6 static 关键字 104

7.6.1 static 修饰属性 104

7.6.2 static 修饰方法 106

7.6.3 static 修饰代码块 107

7.6.4 static 静态导包 108

7.7 代码块 108

7.7.1 普通代码块 108

7.7.2 构造代码块 109

7.8 包 110

7.9 封装 111

7.10 继承 114

7.10.1 继承的原理 114

7.10.2 继承的特性 116

7.10.3 方法的重写 117

7.10.4 权限修饰符 117

7.10.5 super 关键字 118

7.10.6 项目驱动——比萨自助点餐系统 120

7.10.7 Object 类 125

7.11 多态 128

7.11.1 多态的实现 128

7.11.2 多态的表现形式 130

7.11.3 类型转换 131

7.11.4 instanceof 运算符 132

7.12 final 关键字 133

7.12.1 final 修饰变量 133

7.12.2 final 修饰方法 134

7.12.3 final 修饰类 134

7.13 抽象方法和抽象类 134

7.14 接口 135

7.14.1 接口的定义 135

7.14.2 接口的特性 137

7.15 内部类 138

7.15.1 成员内部类 138

7.15.2 静态内部类 139

7.15.3 局部内部类 140

7.15.4 匿名内部类 141

7.16 项目驱动——坦克大战之分解 1 141

本章小结 149

练习题 149

第 8 章 异常 151

8.1 异常的引入 151

8.2 利用 try-catch-finally 机制捕获异常 154

8.3 多重 catch 156

8.4 异常的分类 158

8.5 throws 关键字 158

8.6 throw 关键字 160

8.7 throw 和 throws 的区别 161

8.8 自定义异常 162

本章小结 163

练习题 163

第 9 章 常用类 165

9.1 File 类 165

9.1.1 操作文件 165

9.1.2 操作 167

9.2 包装类 169

9.2.1 包装类的引入 169

9.2.2 包装类的使用 169

9.3 Math 类 171

9.4 Random 类 172

9.5 枚举类 174

9.6 日期时间类 176

9.6.1 Date 类 176

9.6.2 SimpleDateFormat 类 178

9.6.3 Calendar 类 181

9.6.4 LocalDateTime 类 184

9.6.5 DateTimeFormatter 类 185

9.7 字符串类 186

9.7.1 String 类 186

9.7.2 StringBuilder 类 189

9.7.3 StringBuffer 类 192

本章小结 193

练习题 193

第 10 章 集合 195

10.1 使用集合的原因 195

10.2 集合的体系结构 195

10.3 Collection 接口 196

10.4 List 接口 197

10.4.1 List 接口中常用方法 197

10.4.2 List 接口实现类之ArrayList 类 197

10.4.3 List 接口实现类之Vector 类 201

10.4.4 List 接口实现类之LinkedList 类 201

10.5 泛型 204

10.6 Set 接口 206

10.6.1 Set 接口实现类之HashSet 类 206

10.6.2 Set 接口实现类之TreeSet 类 213

10.7 Map 接口 220

10.7.1 Map 接口实现HashMap类 221

10.7.2 Map 接口实现TreeMap类 226

10.8 Collections 类的使用 231

10.9 项目驱动——坦克大战之分解 2 232

本章小结 244

练习题 244

第 11 章 I/O流 246

11.1 I/O流介绍 246

11.2 I/O流的分类 247

11.3 字节流 248

11.3.1 字节输入流 249

11.3.2 字节输出流 252

11.3.3 利用字节流完成文件的复制操作 253

11.4 字节缓冲流 253

11.5 字符流 255

11.5.1 字符输入流 255

11.5.2 字符输出流 257

11.5.3 利用字符流完成文件的复制操作 257

11.6 字符缓冲流 258

11.7 转换流 259

11.7.1 OutputStreamWriter 类 259

11.7.2 InputStreamReader 类 260

11.8 打印流 261

11.8.1 PrintStream 类 261

11.8.2 PrintWriter 类 262

11.9 数据流 263

11.10 对象流、序列化、反序列化 264

本章小结 270

练习题 270

第 12 章 多线程 272

12.1 程序、进程、线程 272

12.2 创建线程的三种方式 273

12.2.1 继承Thread 类方式 273

12.2.2 实现Runnable 接口方式 276

12.2.3 实现Callable 接口方式 276

12.3 线程的生命周期 278

12.4 线程的常用方法 279

12.5 线程安全问题 285

12.5.1 同步代码块 287

12.5.2 同步方法 288

12.5.3 Lock 锁 289

12.5.4 线程同步的优缺点 290

12.6 项目驱动——生产者消费者模型 292

12.7 项目驱动——坦克大战之分解 3 300

12.8 线程池 302

本章小结 303

练习题 303

第 13 章 网络编程 306

13.1 网络编程之网络通信三要素 306

13.1.1 IP地址 306

13.1.2 端口号 307

13.1.3 网络参考模型与通信协议 307

13.2 TCP协议与TCP通信 308

13.2.1 TCP协议 308

13.2.2 TCP通信 309

13.3 项目驱动——模拟网站登录 310

13.4 UDP协议与UDP通信 319

13.4.1 UDP协议 319

13.4.2 UDP通信 320

本章小结 322

练习题 322

作者简介

编辑推荐

《项目驱动零起点学Java》贯穿6个完整项目,经过作者多年教学经验提炼而得,项目从小到大、从短到长,可以让读者在练习项目的过程中,快速掌握一系列知识点。

作者是国内知名Java教学者和传播者,一路披荆斩棘,兢兢业业20余年。积累了丰富的“培”“训”经验,也产出了很多优质的教学理论。

Java语言经过数十年的发展,体系逐渐变得庞大而复杂,本书芟繁就简,提炼出了最为重要的知识点,可以让读者轻松上手。本书配套有专栏课程,课程中提供了扩展内容。

作者寄语

马士兵,马士兵教育创始人,毕业于清华大学,著名IT讲师,所讲课程广受欢迎,学生遍布全球大厂,擅长用简单的语言讲授复杂的问题,擅长项目驱动知识的综合学习。马士兵教育获得在线教育“名课堂”奖、“****机构”奖。

赵珊珊,从事多年一线开发,曾为国税、地税税务系统工作。拥有7年一线教学经验,多年线上、线下教育的积累沉淀,培养学员数万名,讲解细致,脉络清晰。

电子资料

www.luweidong.cn

下一个