结论以及Java的未来

Posted 笑虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结论以及Java的未来相关的知识,希望对你有一定的参考价值。

《Java8实战》读书笔记14:第 16 章 结论以及Java的未来

本章内容
 Java 8的新特性以及其对编程风格颠覆性的影响
 由Java 8萌生的一些尚未成熟的编程思想
 Java 9以及Java 10可能发生的变化

16.1 回顾 Java 8 的语言特性

  1. CUP单核已现瓶颈,多核是趋势。如何利用好多核进行并发运算,自然也就是趋势
  2. 更简洁地调度以显示风格(函数式)处理数据的数据集合是趋势

16.1.1 行为参数化(Lambda 以及方法引用)

传递一个Lambda表达式,即一段精简的代码片段,比如

apple -> apple.getWeight() > 150

传递一个方法引用,该方法引用指向了一个现有的方法,比如这样的代码:

Apple::isHeavy
  1. Lambda 与全新的 Stream API 相结合,新一代 Java核心
  2. Java8 这个 函数式接口 的补丁打得很真牛。毕竟考虑到兼容性问题,没有加新语法。
  3. 从另一个角度来说,函数式接口Function<T, R>、Predicate<T>、BiFunction<T, U, R> 比起 Scala函数类型 写法 (入参) => 返回值 还是丑了些。

16.1.2 流

对于集合功能的拓展,Java8 遵守了开闭原则,引入了一套全新的 Stream API

  1. Lambda 配合。采用 延迟算法流水线 的方式处理数据。
  2. 以内部迭代,替换老式的外部迭代。
  3. 使用 并行流 开启并行计算超简单。(但也要符合:对象的可变函数无副作用

16.1.3 CompletableFuture

Java 5 提供了 Future 接口 Java8 提供了其实现类 CompletableFuture
CompletableFuture 提供了像 thenCompose、thenCombine、allOf这样的操作。
详见:《Java8实战》读书笔记10:组合式异步编程 CompletableFuture

16.1.4 Optional

  1. 将传统的 显示判空 用统一接口封装为 隐式判空。统一的相关操作如:map、filter、ifPresent、orElseGet 等。
  2. 书中推荐所有业务可为空的对象都用 Optional<T>类 封装。
  3. 个人建议:遵守项目规范,除非你说了算。

16.1.5 默认方法

就是个补丁,解决接口无法扩展的问题。
还引出了多继承问题。好在也不复杂,系统能判断的就自己找继承谁了,判断不了的需要显示调用。比如要用父接口B 中的方法:父接口B.super.hello();

16.2 Java 的未来

但今天已经是 2022-07-08 了。

以上是关于结论以及Java的未来的主要内容,如果未能解决你的问题,请参考以下文章

传统关系型数据库NoSQLNewSQL,三者如何在云时代共处? | 技术前沿

微服务架构优缺点未来如何发展?

DBA的未来会怎么样呢?

java多线程18: ThreadLocal的作用

Java多线程10:ThreadLocal的作用及使用

云计算的未来有多远?从阿里云看云计算会怎么样?