为什么看这本书?

在实际的开发过程,查资料经常会看到 ->、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 未来的期待。


适合阅读人群:

这并不是一本适合入门的书籍,需要有一定 Java 基础。

书中虽然把问题讲解的很清晰,也包含了大量的使用示例,但没有一定 Java 的使用经验,仍然无法深刻体会出新特性的精髓。


最大的感触:

  • 使用过新的时间和日期 API,获取年月日时分秒,时间日期的计算,比 Date、Calendar 简单好用。

  • 非中间件开发,并行化使用的还是比较少,毕竟出错的概率较高,成本较大。

  • Lambda 表达式和 Stream 接口的使用,确实能简化代码,看起来更容易理解,有种类 SQL 的命令式。

  • Java 8 的改变是有惊喜的。


最后弱弱的感叹一句,Java 14 都出来了,公司生产环境还在用 JDK 6,真是稳到不行啊!泪奔...




上一篇读书笔记:

《Hello First HTML 与 CSS 第2版》读书笔记


今年书单:

备一下 2020 年学习 Java 的 40 本书


进度已慢,怕是完不成了。


更多相关文章

  1. 记一次三元表达式的坑(避免采坑)
  2. 详解第三种创建线程的方式-Callable接口
  3. 【编测编学】接口测试面试题必背(下)
  4. java8的一个新特性-Lambda表达式的详解(从0开始)
  5. 讲给前端的正则表达式(4):避免灾难性回溯[每日前端夜话0x105]
  6. 讲给前端的正则表达式(2):写出更优雅、更精确的正则表达式[每日前
  7. 讲给前端的正则表达式(1):基本概念
  8. 讲给前端的正则表达式(3):使用 ES6 特性[每日前端夜话0x104]
  9. 快速测试 API 接口的新技能

随机推荐

  1. 在透明背景PNG周围获得“方形”框阴影。
  2. 如何解决Angular appliacation中“消失”
  3. 基于OpenLayer测量工具的Javascript类定
  4. 隐藏加载更多记录按钮ASP.net MVC Ajax J
  5. Javascript sort()不适用于Chrome中超过10
  6. 五十行javascript代码实现简单的双向数据
  7. 缩放图像后的鼠标位置(比率/比率)
  8. 正则表达式以任何顺序匹配多个模式
  9. 使用javascript或jquery将具有相同id的多
  10. 12个非常有用的JavaScript技巧