新書推薦:
《
“御容”与真相:近代中国视觉文化转型(1840-1920)
》
售價:NT$
505.0
《
鸣沙丛书·大风起兮:地方视野和政治变迁中的“五四”(1911~1927)
》
售價:NT$
454.0
《
海洋、岛屿和革命:当南方遭遇帝国(文明的另一种声音)
》
售價:NT$
485.0
《
铝合金先进成型技术
》
售價:NT$
1214.0
《
英雄之旅:把人生活成一个好故事
》
售價:NT$
398.0
《
分析性一体的涌现:进入精神分析的核心
》
售價:NT$
556.0
《
火枪与账簿:早期经济全球化时代的中国与东亚世界
》
售價:NT$
352.0
《
《全面与进步跨太平洋伙伴关系协定》国有企业条款研究
》
售價:NT$
449.0
|
編輯推薦: |
(1)环境搭建无障碍,体验详细版操作教学。
(2)全面讲解Java知识点,直击数据处理技术;深入探讨Java高级应用,如反应式编程以及微服务架构,代表了Java在大数据处理和机器学习领域应用的前沿,也是现代数据处理的发展方向。
(3)基础知识与实战案例相结合,提供全部源代码,可操作性强。
(4)本书涵盖内容具有梯度化特征,从基础入门到核心编程,再到高级应用。
(5)代码详尽,语言通俗易懂,并将Java新特征融入其中。
|
內容簡介: |
本书以Java 12为基础,全面系统地介绍Java语言,并引导读者进入**的Java编程领域。全书分为三部分,共包括19章。部分为Java编程概述,包括第1~3章,主要讲解Java 12入门知识,Java面向对象编程和Java基础知识;第二部分为Java主要构建单元,包括第4~12章,主要讲解异常处理,字符串、输入输出和文件,数据结构、泛型和流行实用工具,Java标准库和外部库,多线程和并发处理,JVM结构和垃圾收集,数据库数据管理,网络编程以及Java GUI编程等;第三部分为Java高级阶段,包括第13~19章,主要讲解函数式编程,Java标准流,反应式编程,微服务架构,Java微基准测试工具,高质量代码编写**实践以及Java的**特征。 本书内容丰富全面,适用于任何想学习Java的读者。学习本书内容不需要读者具有Java专业知识或任何其他编程语言知识。本书可供高等院校学生和教师参考,也可供软件开发人员和Java爱好者参考,是学习Java编程的参考资料。
|
關於作者: |
沈泽刚,男,1964年生,渤海大学信息科学与技术学院,教授。研究方向包括程序设计方法、数据库技术以及Web信息集成等。主要从事计算机科学与技术专业科研及教学工作,出版专著1部,主编教材4部,近年来发表学术论文10多篇。为本科生、硕士生及留学生讲授专业课程多门。
|
目錄:
|
部分 Java编程概述
第1章 Java 12入门知识 3
1.1 如何安装和运行Java 3
1.1.1 何为JDK以及为何需要JDK 4
1.1.2 Java SE的安装 4
1.1.3 命令和实用工具 5
1.2 集成开发环境 6
1.2.1 选择一种IDE 6
1.2.2 安装和配置IntelliJ IDEA 7
1.2.3 创建项目 8
1.2.4 从命令行执行示例程序 13
1.3 Java基本类型和运算符 14
1.3.1 boolean(布尔)类型 14
1.3.2 数值类型 14
1.3.3 基本类型的默认值 17
1.3.4 基本类型的字面值 17
1.3.5 新增的压缩数字格式 19
1.3.6 运算符 19
1.4 String(字符串)类型和字面值 22
1.4.1 字符串字面值 23
1.4.2 字符串不变性 24
1.5 标识符和变量 25
1.5.1 标识符 25
1.5.2 变量声明(定义)与初始化 25
1.5.3 类型持有器var 26
1.6 Java语句 26
1.6.1 表达式语句 27
1.6.2 控制流语句 27
本章小结 35
第2章 Java面向对象编程 36
2.1 OOP概念 36
2.1.1 对象/类 37
2.1.2 继承 37
2.1.3 抽象/接口 38
2.1.4 封装 39
2.1.5 多态性 39
2.2 类 39
2.2.1 方法 40
2.2.2 可变参数方法 41
2.2.3 构造方法 42
2.2.4 new运算符 44
2.2.5 java.lang.Object类 45
2.2.6 实例属性和方法以及静态属性和方法 46
2.3 接口 48
2.3.1 默认方法 49
2.3.2 私有方法 50
2.3.3 静态字段和方法 50
2.3.4 接口与抽象类对比 50
2.4 重载、覆盖与隐藏 51
2.4.1 重载 51
2.4.2 覆盖 52
2.4.3 隐藏 54
2.5 final变量、final方法和final类 56
2.5.1 final变量 56
2.5.2 final方法 57
2.5.3 final类 57
2.6 多态性实战 58
2.6.1 对象工厂 58
2.6.2 instanceof运算符 60
本章小结 61
第3章 Java基础知识 62
3.1 包、导入和访问修饰符 62
3.1.1 包 63
3.1.2 导入 63
3.1.3 访问修饰符 64
3.2 Java引用类型 66
3.2.1 类与接口 67
3.2.2 数组 67
3.2.3 枚举 68
3.2.4 默认值与字面值 70
3.2.5 引用类型作为方法参数 70
3.2.6 equals()方法 72
3.3 保留和受限关键字 74
3.3.1 保留关键字 74
3.3.2 受限关键字 75
3.4 this和super两个关键字的用法 75
3.4.1 this关键字的用法 75
3.4.2 super关键字的用法 76
3.5 基本类型间的转换 77
3.5.1 加宽转换 77
3.5.2 缩窄转换 78
3.5.3 转换方法 78
3.6 基本类型和引用类型间的转换 80
3.6.1 装箱 80
3.6.2 拆箱 81
本章小结 82
第二部分 Java主要构建单元
第4章 异常处理 85
4.1 Java异常处理框架 85
4.2 受检型异常和非受检型异常 86
4.3 try块、catch块和finally块 88
4.4 throws语句 89
4.5 throw语句 90
4.6 assert语句 91
4.7 异常处理中实践 92
本章小结 92
第5章 字符串、输入输出和文件 93
5.1 字符串处理 93
5.1.1 String类处理方法 93
5.1.2 String实用工具 97
5.2 I/O流 99
5.2.1 流数据 99
5.2.2 InputStream类及其子类 100
5.2.3 OutputStream类及其子类 107
5.2.4 Reader类和Writer类及其子类 109
5.2.5 java.io包中其他类 111
5.2.6 java.util.Scanner类 117
5.3 文件管理 119
5.3.1 创建和删除文件和目录 119
5.3.2 列出文件和目录 120
5.4 Apache的FileUtils和IOUtils实用工具 121
5.4.1 FileUtils类 122
5.4.2 IOUtils类 122
本章小结 123
第6章 数据结构、泛型和流行实用工具 124
6.1 List接口、Set接口和Map接口 124
6.1.1 泛型 125
6.1.2 如何对List和Set初始化 125
6.1.3 java.lang.Iterable接口 128
6.1.4 Collection接口 128
6.1.5 List接口 130
6.1.6 Set接口 131
6.1.7 Map接口 132
6.1.8 不可修改的集合 134
6.2 Collections实用工具 134
6.2.1 java.util.Collections类 134
6.2.2 org.apache.commons.collections4.CollectionUtils类 136
6.3 Arrays实用工具 137
6.3.1 java.util.Arrays类 137
6.3.2 org.apache.commons.lang3.ArrayUtils类 138
6.4 Objects实用工具 139
6.4.1 java.util.Objects类 139
6.4.2 org.apache.commons.long3.ObjectUtils类 142
6.5 java.time包 142
6.5.1 LocalDate类 142
6.5.2 LocalTime类 145
6.5.3 LocalDateTime类 145
6.5.4 Period类和Duration类 146
本章小结 147
第7章 Java标准库和外部库 148
7.1 Java类库 148
7.1.1 java.lang包 149
7.1.2 java.util包 150
7.1.3 java.time包 150
7.1.4 java.io包和java.nio包 151
7.1.5 java.sql包和javax.sql包 151
7.1.6 java.net包 151
7.1.7 java.lang.Math类和java.math包 151
7.1.8 java.awt包、javax.swing包和javafx包 151
7.2 Java外部库 152
7.2.1 org.junit包 152
7.2.2 org.mockito包 153
7.2.3 org.apache.log4j包和org.slf4j包 154
7.2.4 org.apache.commons包 156
本章小结 159
第8章 多线程和并发处理 160
8.1 线程与进程对比 160
8.2 用户线程与守护线程对比 160
8.3 Thread类的扩展 161
8.4 Runnable接口的实现 162
8.5 Thread类的扩展与Runnable接口的实现对比 163
8.6 线程池的使用 164
8.7 如何从线程获得结果 169
8.8 并行处理与并发处理对比 173
8.9 相同资源的并发修改 173
8.9.1 原子变量 176
8.9.2 同步方法 177
8.9.3 同步块 177
8.9.4 并发集合 178
8.9.5 内存一致性错误的处理 180
本章小结 180
第9章 JVM结构和垃圾收集 181
9.1 Java应用程序的执行 181
9.1.1 使用IDE 181
9.1.2 从命令行运行类 184
9.1.3 从命令行运行JAR文件 186
9.1.4 从命令行运行可执行的JAR文件 187
9.2 Java进程 187
9.2.1 类的加载 189
9.2.2 类的链接 190
9.2.3 类的初始化 190
9.2.4 类的实例化 190
9.2.5 方法执行 191
9.2.6 垃圾收集 191
9.2.7 应用程序终止 191
9.3 JVM结构 193
9.3.1 运行时数据区 193
9.3.2 类加载器 193
9.3.3 执行引擎 193
9.4 垃圾收集 194
9.4.1 响应时间、吞吐量和全局停顿 194
9.4.2 对象寿命和世代 194
9.4.3 全局停顿无法避免时 195
本章小结 195
第10章 数据库数据管理 196
10.1 创建数据库 196
10.2 创建数据库结构 197
10.3 连接到数据库 199
10.4 关闭连接 201
10.5 数据的CRUD操作 202
10.5.1 INSERT语句 202
10.5.2 SELECT语句 202
10.5.3 UPDATE语句 203
10.5.4 DELETE语句 204
10.5.5 使用Statement接口 204
10.5.6 使用PreparedStatement接口 208
10.5.7 使用CallableStatement接口 209
本章小结 210
第11章 网络编程 211
11.1 网络协议 211
11.2 基于UDP的通信 212
11.3 基于TCP的通信 215
11.3.1 java.net.ServerSocket类 216
11.3.2 java.net.Socket类 218
11.3.3 示例程序的运行 219
11.4 UDP与TCP对比 220
11.5 基于URL的通信 221
11.5.1 URL语法 221
11.5.2 java.net.URL类 222
11.6 使用HTTP 2客户端API 226
11.6.1 阻塞HTTP请求 227
11.6.2 非阻塞(异步)HTTP请求 229
11.6.3 服务器推送功能 233
11.6.4 WebSocket支持 234
本章小结 235
第12章 Java GUI编程 236
12.1 Java GUI技术 236
12.2 JavaFX基础知识 237
12.3 JavaFX简单编程示例 239
12.4 控件元素 241
12.5 图表 243
12.6 CSS的应用 244
12.7 FXML的使用 246
12.8 HTML的嵌入 250
12.9 媒体的播放 256
12.10 特效的添加 259
本章小结 266
第三部分 Java高级阶段
第13章 函数式编程 269
13.1 何为函数式编程 269
13.1.1 函数式接口 271
13.1.2 lambda表达式 272
13.1.3 lambda参数的局部变量语法 273
13.2 标准函数式接口 274
13.2.1 Consumer接口 274
13.2.2 Predicate接口 276
13.2.3 Supplier接口 277
13.2.4 Function接口 277
13.2.5 其他标准函数式接口 279
13.3 lambda表达式的限制 279
13.4 方法引用 280
本章小结 282
第14章 Java标准流 283
14.1 流——数据源和操作源 283
14.2 流的初始化 284
14.2.1 Stream接口 284
14.2.2 Stream.Builder接口 287
14.2.3 其他类和接口 288
14.3 操作(方法) 290
14.3.1 中间操作 290
14.3.2 终止操作 293
14.4 数值流接口 308
14.4.1 创建流 308
14.4.2 中间操作 308
14.4.3 终止操作 310
14.5 并行流 311
14.5.1 无状态操作和有状态操作 311
14.5.2 顺序处理还是并行处理 312
本章小结 312
第15章 反应式编程 313
15.1 异步处理 313
15.1.1 顺序流和并行流 313
15.1.2 CompletableFuture对象的使用 315
15.2 非阻塞API 316
15.2.1 java.io包与java.nio包对比 316
15.2.2 事件/运行循环 316
15.3 反应式体系 317
15.3.1 响应性 318
15.3.2 复原性 318
15.3.3 灵活性 318
15.3.4 消息驱动 318
15.4 反应式流 319
15.5 RxJava——Java反应式扩展 320
15.5.1 Observable对象的划分 321
15.5.2 Disposable对象 327
15.5.3 Observable对象的创建 328
15.5.4 操作符 330
15.5.5 多线程(调度器) 337
本章小结 341
第16章 微服务架构 342
16.1 何为微服务 342
16.2 微服务架构的规模 343
16.3 微服务架构如何相互交流 344
16.4 微服务架构的反应式系统 346
16.4.1 HTTP服务器 346
16.4.2 EventBus消息接收器 349
16.4.3 EventBus消息发送器 350
16.4.4 反应式系统演示 353
本章小结 354
第17章 Java微基准测试工具 355
17.1 何为JMH 355
17.2 JMH基准的创建 357
17.3 使用IDE插件运行基准 358
17.4 JMH基准参数 361
17.4.1 模式 361
17.4.2 输出时间单位 361
17.4.3 迭代 361
17.4.4 分叉 361
17.5 JMH使用示例 362
17.5.1 使用@State注解 363
17.5.2 使用Blackhole对象 364
17.5.3 使用@CompilerControl注解 364
17.5.4 使用@Param注解 365
17.6 告诫之语 365
本章小结 366
第18章 高质量代码编写实践 367
18.1 Java行业惯用语、实现及用法 367
18.1.1 equals()方法和hashCode()方法 367
18.1.2 compareTo()方法 369
18.1.3 clone()方法 371
18.1.4 StringBuffer类和StringBuilder类 374
18.1.5 try子句、catch子句和finally子句 374
18.2 设计实践 374
18.2.1 松耦合功能区的识别 374
18.2.2 功能区的传统层划分 374
18.2.3 接口代码的编写 375
18.2.4 工厂方法的使用 375
18.2.5 宁组合勿继承 375
18.2.6 库的使用 375
18.3 代码为人而写 375
18.4 测试——通向高质量代码的捷径 376
本章小结 377
第19章 Java的特征 378
19.1 Java仍在继续进化 378
19.2 Panama项目 379
19.3 Valhalla项目 379
19.4 Amber项目 380
19.4.1 数据类 380
19.4.2 模式匹配 381
19.4.3 原字符串字面值 382
19.4.4 简洁方法体 382
19.4.5 lambda遗留 383
19.5 Loom项目 384
19.6 Skara项目 385
本章小结 385
|
內容試閱:
|
本书旨在让读者完全理解Java编程语言的基础知识,通过一步一步的实践引领读者从基础做起,再到真正的实际编程。书中讨论和示例的目的是激发读者的专业直觉,让读者采用可行的编程原则和编程实践。本书从基础知识起步,带领读者进入的编程技术领域,从而达到一种专业技术水平。
学习完本书,读者能够:
* 安装并配置Java开发环境;
* 安装并配置集成开发环境(IDE)——编程用的工具;
* 编写、编译和执行Java程序,并加以测试;
* 理解并使用Java语言基础知识;
* 理解并应用面向对象的设计原则;
* 掌握常用的Java控制结构;
* 学会如何访问和管理数据库数据;
* 加深对网络编程的理解;
* 学会如何开发图形用户界面,更好地与设计的应用程序交互;
* 熟悉函数式编程;
* 领会的数据处理技术——流技术(包括并行流技术和反应式流技术);
* 学会并实际创建微服务架构,构建反应式系统;
* 实际操作,做出的设计,编出的程序;
* 展望Java未来,学会如何将自身融入其中。
本书内容概览
本书共分三部分。
部分为Java编程概述,包括第1~3章。
第1章为Java 12入门知识,主要介绍如何安装和运行Java,如何安装和运行集成开发环境(IDE),Java基本类型和运算符,String(字符串)类型和字面值,标识符和变量以及Java语句。
第2章为Java面向对象编程,主要介绍OOP概念,类,接口,重载、覆盖与隐藏,final变量、final方法和final类以及多态性。
第3章为Java基础知识,主要介绍包、导入和访问修饰符,Java引用类型,保留和受限关键字,this和super两个关键字的用法,基本类型间的转换以及基本类型和引用类型间的转换。
第二部分为Java主要构建单元,包括第4~12章。
第4章为异常处理,主要介绍Java异常处理框架,受检型异常和非受检型异常,try块、catch块和finally块,throws语句,throw语句,assert语句以及异常处理中实践操作等。
第5章为字符串、输入输出和文件,主要介绍字符串处理,I/O流,文件管理以及Apache Commons工具包中FileUtils和IOUtils实用工具。
第6章为数据结构、泛型和流行实用工具,主要介绍List接口、Set接口和Map接口,Collections实用工具,Arrays实用工具,Objects实用工具以及java.time包。
第7章为Java标准库和外部库,详细讲解Java类库(JCL)和Java外部库。
第8章为多线程和并发处理,主要探讨与讲解线程与进程对比,用户线程与守护线程对比,Thread类的扩展,Runnable接口的实现,Thread类的扩展与Runnable接口的实现对比,线程池的使用,如何从线程获得结果,并行处理与并发处理对比以及相同资源的并发修改。
第9章为JVM结构和垃圾收集,主要介绍Java应用程序的执行,Java进程,JVM结构以及垃圾收集等内容。
第10章为数据库数据管理,主要介绍创建数据库,创建数据库结构,连接到数据库,释放连接以及数据的CRUD(添加、读取、更新、删除)操作。
第11章为网络编程,主要介绍网络协议,基于UDP的通信,基于TCP的通信,UDP与TCP对比,基于URL的通信以及使用HTTP 2客户端API。
第12章为Java GUI编程,主要介绍Java GUI技术,JavaFX基础知识,JavaFX简单编程示例,控件元素,图表,CSS的应用,FXML的使用,HTML的嵌入,媒体的播放以及特效的添加。
第三部分为Java高级阶段,包括第13~19章。
第13章为函数式编程,主要介绍何为函数式编程,标准函数式接口,lambda表达式的限制以及方法引用。
第14章为Java标准流,主要介绍流——数据源和操作源,流的初始化,操作(方法),数值流接口以及并行流。
第15章为反应式编程,主要介绍异步处理,非阻塞API,反应式体系,反应式流以及RxJava——Java反应式扩展。
第16章为微服务架构,主要介绍何为微服务,微服务架构的规模,微服务架构如何相互交流以及微服务架构的反应式体系。
第17章为Java微基准测试工具(JMH),主要介绍何为JMH,JMH基准的创建,使用IDE插件运行基准,JMH基准参数,JMH使用示例,并提出告诫之语。
第18章为高质量代码编写实践,主要介绍Java行业惯用语、实现及其用法,设计实践,说明了代码为人而写的事实,进而论述了测试是通向高质量代码的捷径。
第19章为Java的特征,主要介绍Java仍在继续进化,Panama项目,Valhalla项目,Amber项目,Loom项目以及Skara项目。
特别声明,为保持原著中源代码的准确性,全书代码注释部分均不做翻译处理。
配套资源
为便于教与学,本书配有源代码、习题及参考答案,获取方式:先扫描本书封底的文泉云盘防盗码,再扫描下方二维码,即可获取。
源代码
习题及参考答案
本书特色
(1)轻松起步,快乐入门,无障碍进入高级主题。
(2)全面讲解Java知识点,直击数据处理技术;深入探讨Java高级应用,如反应式编程以及微服务架构,这些代表了Java在大数据处理和机器学习领域应用的前沿,也是现代数据处理的发展方向。
(3)基础知识与实战案例相结合,提供全部源代码,可操作性强。
(4)本书涵盖内容具有梯度化特征,从基础入门到核心编程,再到高级应用。
(5)代码详尽,语言通俗易懂,并将Java新特征融入其中。
本书适用对象
本书适用于愿意在现代Java专业编程领域中创业的人。本书也适用于这一领域中的专业人员,这些专业人员有更新专业知识的意愿,并且愿意了解的Java语言及其相关的技术和理念。
本书涉及大量专业新术语和新知识,虽然译者倾力而为、编辑通力合作,在翻译过程中力求准确生动,但限于个人水平和时间仓促,书中难免存在疏漏之处,欢迎读者批评指正。
译 者
2021年4月
|
|