《Java8实战》

2020-07-29

为什么看这本书?

在实际的开发过程,查资料经常会看到 ->、Stream 接口,第一次接触这些时,让我感到有些懵圈,这些都是什么玩法?-> 不是 JavaScript 里的语法糖吗?

为了一探究竟,我查了相关内容,原来都是 Java 8 的新特性。

那 Java 8 到底添加了哪些新特性?它们的用法和作用是什么?用起来爽不爽?

在豆瓣上找到了这本 9.3 分的书,带着以上疑问就开始探索了。

 

这本书的整体情况:

300 多页,读起来并不轻松。晚上有空就看一点,觉得有用就记一些笔记到博客中,零零散散总共花了大半个月,把这本书看完了。

书中详实地讲了 Java 8 的新特性:Lambda 表达式、函数式数据处理-流(Stream 接口)、接口的默认方法、CompletableFuture 组合式异步编程、Optional、新的时间和日期 API。

  • 其中 Lambda 表达式、函数式数据处理-流(Stream 接口)这两部的例子最为详细。
  • 整书一直在强调并行计算,如:Stream 接口如何利用计算机的多核,并行又会带来哪些麻烦;CompletableFuture 如何进行并行计算;Fork/Join 框架如何分解任务,如何合并任务,来提高性能。
  • 推演了为什么要支持接口添加默认方法,导致的类似 C++ 的菱形继承又是按照什么规则解决的。
  • 为了避免空指针异常,推出了 Optional。
  • 原有的 Date、Calendar 类的存在设计缺陷、表达不直观、偏移复杂,Java 8 推出了新的时间和日期 API。

最后还补充了对函数式编程的思考,与 Scala 语言对比;指出 Lambda 表达式出现异常调试信息不清晰等缺点;以及对 Java 未来的期待。

 

适合阅读人群:

ConstXiong 备案号:苏ICP备16009629号-3