Java实战第2版Java8实战Java8、9、新特性java语言程序开发书籍pdf下载pdf下载

Java实战第2版Java8实战Java8、9、新特性java语言程序开发书籍百度网盘pdf下载

作者:
简介:本篇主要提供Java实战第2版Java8实战Java8、9、新特性java语言程序开发书籍pdf下载
出版社:蓝墨水图书专营店
出版时间:2019-11
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍



本书特色

现代Java应用充分利用了微服务、反应式架构以及流式数据等创新设计。现代Java特性,譬如Lambda、流以及大家期待已久的Java模块系统让这些设计的实现极其便利。是时候更新技能工具箱了,只有这样,你才能从容应对迎面而来的种种挑战!



本书通过透彻的示例和通俗的语言讲解了Java语言这些激动人心的特性,作者注重细节,努力降低了学习难度,节省你宝贵的时间。依照本书边学边练,你可以很快掌握流应用程序接口、Java模块系统等现代Java新特性,再进一步去探寻实现并发的新方法,了解函数式编程如何帮你编写可读性好又容易维护的代码。潜心修炼,你的编程实力必能提高到新的层次。



本书特色:



●对上一版(《Java 8实战》)做了全新改版 


●Java 8、9、10及后续版本新特性介绍 


●流数据处理以及反应式编程 


●Java模块系统 


作者介绍

拉乌尔–加布里埃尔•乌尔玛(Raoul-Gabriel Urma),剑桥大学计算机科学博士,软件工程师,培训师,现任Cambridge Spark公司CEO。在谷歌、eBay、甲骨文和高盛等大公司工作过,并参与过多个创业项目。活跃在技术社区,经常撰写技术文章,多次受邀在国际会议上做技术讲座。



马里奥•富斯科(Mario Fusco),Red Hat高级软件工程师,负责JBoss规则引擎Drools的核心开发。拥有丰富的Java开发经验,曾领导媒体公司、金融部门等多个行业的企业级项目开发。对函数式编程和领域特定语言等有浓厚兴趣,并创建了开放源码库lambdaj。



艾伦•米克罗夫特(Alan Mycroft),剑桥大学计算机实验室计算学教授,剑桥大学罗宾逊学院研究员,欧洲编程语言和系统协会联合创始人,树莓派基金会联合创始人和理事。发表过大约100篇研究论文,指导过20多篇博士论文。他的研究主要关注编程语言及其语义、优化和实施。他与业界联系紧密,曾于学术休假期间在AT&T实验室和英特尔工作,还创立了Codemist公司,该公司设计了初的ARM C编译器Norcroft。



【译者介绍】



陆明刚,毕业于四川大学,目前在Dell EMC中国卓越研发集团任高级主管工程师,曾任趋势科技中国软件研发中心技术经理,在信息科学和工程领域有十余年的实践和研究经验,拥有多项中国及美国专利。关注JVM性能调优和大数据及其实践,喜欢挖掘技术背后的内幕并乐此不疲。



劳佳,上海交通大学硕士,现任SAP(美国)高级软件支持顾问。业余爱好语言、数学、设计,英、法双语译者,近年翻译出版了《咨询的奥秘》《卓越程序员密码》《计算进化史:改变数学的命运》等书。

一部分 基础知识 
第 1 章 Java 8、9、10以及11的变化 2 
1.1 为什么要关心Java的变化 2 
1.2 Java怎么还在变 4 
1.2.1 Java在编程语言生态系统中的位置 5 
1.2.2 流处理 6 
1.2.3 用行为参数化把代码传递给方法 7 
1.2.4 并行与共享的可变数据 8 
1.2.5 Java需要演变 9 
1.3 Java中的函数 9 
1.3.1 方法和Lambda作为一等值 10 
1.3.2 传递代码:一个例子 11 
1.3.3 从传递方法到Lambda 13 
1.4 流 14 
1.5 默认方法及Java模块 17 
1.6 来自函数式编程的其他好思想 19 
1.7 小结 20 
第 2 章 通过行为参数化传递代码 22 
2.1 应对不断变化的需求 23 
2.1.1 初试牛刀:筛选绿苹果 23 
2.1.2 再展身手:把颜色作为参数 23 
2.1.3 第三次尝试:对你能想到的每个属性做筛选 24 
2.2 行为参数化 25 
2.3 对付啰唆 30 
2.3.1 匿名类 30 
2.3.2 第五次尝试:使用匿名类 31 
2.3.3 第六次尝试:使用Lambda表达式 32 
2.3.4 第七次尝试:将List类型抽象化 33 
2.4 真实的例子 33 
2.4.1 用Comparator来排序 33 
2.4.2 用Runnable执行代码块 34 
2.4.3 通过Callable返回结果 35 
2.4.4 GUI事件处理 35 
2.5 小结 36 
第 3 章 Lambda表达式 37 
3.1 Lambda管中窥豹 37 
3.2 在哪里以及如何使用Lambda 40 
3.2.1 函数式接口 40 
3.2.2 函数描述符 42 
3.3 把Lambda付诸实践:环绕执行模式 44 
3.3.1 第 1 步:记得行为参数化 44 
3.3.2 第 2 步:使用函数式接口来传递行为 45 
3.3.3 第 3 步:执行一个行为 45 
3.3.4 第 4 步:传递Lambda 46 
3.4 使用函数式接口 47 
3.4.1 Predicate 47 
3.4.2 Consumer 47 
3.4.3 Function 48 
3.5 类型检查、类型推断以及限制 52 
3.5.1 类型检查 52 
3.5.2 同样的Lambda,不同的函数式接口 53 
3.5.3 类型推断 55 
3.5.4 使用局部变量 56 
3.6 方法引用 57 
3.6.1 管中窥豹 57 
3.6.2 构造函数引用 60 
3.7 Lambda和方法引用实战 62 
3.7.1 第 1 步:传递代码 62 
3.7.2 第 2 步:使用匿名类 62 
3.7.3 第 3 步:使用Lambda表达式 62 
3.7.4 第 4 步:使用方法引用 63 
3.8 复合Lambda表达式的有用方法 63 
3.8.1 比较器复合 64 
3.8.2 谓词复合 64 
3.8.3 函数复合 65 
3.9 数学中的类似思想 66 
3.9.1 积分 66 
3.9.2 与Java 8的Lambda联系起来 68 
3.10 小结 68 
第二部分 使用流进行函数式数据处理 
第 4 章 引入流 72 
4.1 流是什么 72 
4.2 流简介 76 
4.3 流与集合 78 
4.3.1 只能遍历一次 79 
4.3.2 外部迭代与内部迭代 80 
4.4 流操作 82 
4.4.1 中间操作 83 
4.4.2 终端操作 84 
4.4.3 使用流 84 
4.5 路线图 85 
4.6 小结 85 
第 5 章 使用流 86 
5.1 筛选 87 
5.1.1 用谓词筛选 87 
5.1.2 筛选各异的元素 87 
5.2 流的切片 88 
5.2.1 使用谓词对流进行切片 88 
5.2.2 截短流 90 
5.2.3 跳过元素 90 
5.3 映射 91 
5.3.1 对流中每一个元素应用函数 91 
5.3.2 流的扁平化 92 
5.4 查找和匹配 95 
5.4.1 检查谓词是否至少匹配一个元素 95 
5.4.2 检查谓词是否匹配所有元素 96 
5.4.3 查找元素 96 
5.4.4 查找第 一个元素 97 
5.5 归约 98 
5.5.1 元素求和 98 
5.5.2 大值和小值 100 
5.6 付诸实践 103 
5.6.1 领域:交易员和交易 103 
5.6.2 解答 104 
5.7 数值流 106 
5.7.1 原始类型流特化 107 
5.7.2 数值范围 108 
5.7.3 数值流应用:勾股数 108 
5.8 构建流 111 
5.8.1 由值创建流 111 
5.8.2 由可空对象创建流 111 
5.8.3 由数组创建流 112 
5.8.4 由文件生成流 112 
5.8.5 由函数生成流:创建无限流 113 
5.9 概述 116 
5.10 小结 116 
第 6 章 用流收集数据 118 
6.1 收集器简介 119 
6.1.1 收集器用作高级归约 119 
6.1.2 预定义收集器 120 
6.2 归约和汇总 121 
6.2.1 查找流中的大值和小值 121 
6.2.2 汇总 122 
6.2.3 连接字符串 123 
6.2.4 广义的归约汇总 124 
6.3 分组 127 
6.3.1 操作分组的元素 128 
6.3.2 多级分组 130 
6.3.3 按子组收集数据 131 
6.4 分区 134 
6.4.1 分区的优势 135 
6.4.2 将数字按质数和非质数分区 136 

......

.................................