第 21 章 结论以及 Java 的未来

笔记来源:《Java实战(第2版)》ISBN:978-7-115-52148-4 作者:拉乌尔·加布里埃尔·乌尔玛,马里奥·富斯科,艾伦·米克罗夫特.

Java实战(第2版)学习笔记目录

21.1 回顾 Java 8 的语言特性

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

21.1.2 流

21.1.3 CompletableFuture

21.1.4 Optional

21.1.5 Flow API

21.1.6 默认方法

21.2 Java 9 的模块系统

  • 可靠的配置—通过显式声明模块的依赖性,错误可以在很早的时候,就借由编译检测到,而不必等到运行时发生了依赖缺失、依赖冲突,或者循环依赖才发现。
  • 严格的封装—Java模块系统可以设置只导出某几个包,对模块的公有访问、每个模块的访问边界以及内部实现进行区分。
  • 改进的安全性—由于用户无法随心所欲地调用模块的组成部分,因此攻击者想要攻破由模块系统实现的安全控制将更加困难。
  • 更好的性能—如果一个类只能被有限的组件访问,而不是任何类都能在运行时加载它,那么对这样的类进行的很多优化都会更加有效。
  • 扩展性—Java模块系统可以将JavaSE平台解构成更细粒度的组成部分,你可以选择只执行运行你的应用所需要的特性。

21.3 Java 10 的局部变量类型推断

21.4 Java 的未来

21.4.1 声明处型变

21.4.2 模式匹配

21.4.3 更加丰富的泛型形式

21.4.4 对不变性的更深层支持

Java 8 只支持三种类型的值,分别是:

  • 基本类型值;
  • 指向对象的引用;
  • 指向函数的引用。

transitively_final

  • 该关键字用于修饰引用类型的字段,确保无论是对该字段本身直接的修改,还是对通过该字段能直接或间接访问到的对象的修改都不会发生。
  • Java 8 没有 transitively_final 关键字

21.4.5 值类型

  • 对于基本变量,特征比较采用的是逐位比较
  • 对于对象类型它采用的是引用比较

21.5 让 Java 发展得更快

comments powered by Disqus