分享一份技术书籍《Java 8 》PDF版,可自行下载
Java从头到尾都是被设计成为一门面向对象的语言,所以时间长了,它就积累了很多的有用的库。从头开始,他就拥有多线程处理的能力。最重要的是Java里面有两个非常强大非常超前的两个概念:jvm和Java字节码。
Java的演变过程
Java从头到尾都是被设计成为一门面向对象的语言,所以时间长了,它就积累了很多的有用的库。从头开始,他就拥有多线程处理的能力。最重要的是Java里面有两个非常强大非常超前的两个概念:jvm和Java字节码。
Java虚拟机( JVM)及其字节码可能会变得比Java语言本身更重要,而且对于某些应用来说, Java可能会被同样运行在JVM上的竞争对手语言(如Scala或Groovy)取代 。
但是,编程语言生态系统的气候正在变化。程序员越来越多地要处理所谓的大数据(数百万兆甚至更多字节的数据集),并希望利用多核计算机或计算集群来有效地处理。意味着需要使用并行处理——Java以前对此并不支持。
Java 8对于程序员的主要好处在于它提供了更多的编程工具和概念,能以更快,更重要的是能以更为简洁、更易于维护的方式解决新的或现有的编程问题。
语言需要不断改进以跟进硬件的更新或满足程序员的期待 。
要坚持下去, Java必须通过增加新功能来改进,而且只有新功能被人使用,变化才有意义。所以,使用Java 8,你就是在保护你作为Java程序员的职业生涯。
目录
第—部分基础知识
第1章为什么要关心ava 8
1.1 Java怎么还在变
1.1.1 Java在编程语言生态系统中的位置
1.1.2流处理
1.1.3用行为参数化把代码传递给方法.
1.1.4并行与共享的可变数据
1.1.5Java需要演变
1.2 Java中的函数
1.2.1方法和Lambda作为一等公民
1.2.2传递代码:一个例子
1.2.3从传递方法到Lambda-
1.3流
1.4默认方法
1.5来自函数式编程的其他好思想
1.6小结
第2章通过行为参数化传递代码
2.1应对不断变化的需求
2.1.1初试牛刀:筛选绿苹果
2.1.2再展身手:把颜色作为参数
2.1.3 第三次尝试:对你能想到的每个属性做筛选
2.2行为参数化
2.3对付啰嗦
2.3.1匿名类
2.3.2第五次尝试:使用匿名类
2.3.3’第六次尝试:使用Lambda表达式
2.3.4’第七次尝试:将List类型抽象化
2.4真实的例子
2.4.1用Comparator来排序
2.4.2用Runnable执行代码块
2.4.3 GUI事件处理
2.5小结
第3章Lambda表达式
3.1 Lambda管中窥豹
3.2在哪里以及如何使用Lambda
3.3把Lambda付诸实践:环绕执行模式工
3.4使用国数式接口i
3.5类型检查、类型推断以及限制
3.6方法引用
3.7 lambda和方法引用实战
3.8复合Lambda表达式的有用方法
3.9数学中的类似思想
3.10小结
第二部分函数式数据处理
第4章引入流
4.1流是什么.
4.2流简介.
4.3流与集合.
4.4流操作.
4.5小结
第5章使用流
5.1筛选和切片
5.2映射
5.3查找和匹配
5.4 归约
5.5付诸实践
5.6数值流
5.7构建流
5.8小结
第6章用流收集数据
6.1收集器间介
6.2归约和汇总
6.3分组
6.4分区
6.5收集器接口
6.6开发你自己的收集器以获得更好的性能
6.7小结
第7章并行数据处理与性能
7.1并行流
7.2分支/合并框架
7.3 Spliterator
7.4小结
第三部分高效Java 8编程
第8章重构、测试和调试
8.1为改善可读性和灵活性重构代码
8.2使用Lambda重构面向对象的设计模式
8.3测试Lambda表达式
8.4调试
8.5小结
第9章默认方法
9.1不断演进的API
9.2概述默认方法
9.3默认方法的使用模式
9.4解决冲突的规则
9.5小结
第10章用Optional取代null
10.1如何为缺失的值建模
10.2 Optional类入门
10.3应用Optional的几种模式
10.4使用Optional的实战示例
10.5小结
第11章CompletableFuture:组合式异步编程
11.1 Future接口
11.2实现异步API
11.3让你的代码免受阻塞之苦
11.4对多个异步任务进行流水线操作
11.5响应CompletableFuture的completion事件
11.6小结
第12章新的日期和时间API
12.1 LocalDate 、 LocalTime 、 Instant 、 Duration 以及 Period
12.2操纵、解析和格式化日期
12.3处理不同的时区和历法
12.4小结
第四部分超越Java 8
第13章函数式的思考
13.1实现和维护系统
13.2什么是函数式编程
13.3递归和迭代
13.4小结
第14章函数式编程的技巧
14.1无处不在的函数
14.2持久化数据结构
14.3 Stream的延迟计算
14.4模式匹配
14.5杂项14.6小结
第15章面向对象和函数式编程的混合:Java 8和Scala的比较
15.1 Scala简介
15.2国数
15.3类和trait
15.4小结
第16章结论以及Java的未来
16.1回顾Java 8的语言特性
16.2 Java的未来
16.3写在最后的话
附录A其他语言特性的更新
附录B类库的更新
附录C如何以并发方式在同一个流上执行多种操作
附录DLambda表达式和JVM字节码
新书宣传页
内容可以说更全面,并且加入 Java 8 的知识点,比如说最具代表性的流和函数式编程。与此同时,删除了已经被淘汰的 AWT 和 Swing 相关内容。
良心啊!
如果你也对这份 PDF 感兴趣的话,可以通过下面的方式获取
需要这本书的可以点击这里!!暗号博客园,领取哈!
还总结了一些2020年的面试题,这份面试题的包含的模块分为19个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM 。
需要的也可以点击这里!!暗号博客园,领取哈!
记得点个关注+评论哦~