写点什么

进击的 Java(二)

作者:ES_her0
  • 2021 年 11 月 10 日
  • 本文字数:871 字

    阅读完需:约 3 分钟

上篇文章简单回顾了一下 Java 的版本历史,我们知道现在市场占有率最大的依然是 Java8,如果想一步跨越到 17 可能存在一点困难,如刘姥姥进了大观园,新的东西太多导致目不暇接。可能也算不上太多,但也需要一步步去学习和掌握,首先从 Java9 开始,看看都有哪些变化。

Java9 相对于 8 其实也是一个比较大的升级,尤其是引入了 Java 的模块化概念,但今天限于篇幅原因暂时还说不到这一块,先来看一下 jdk 的一些其他升级。

  1. 接口私有方法

从最开始写 Java 的时候就知道 Java 的 interface 只用来写方法的声明,所有的方法都是默认 public abstract,具体的实现要实现类自己去实现。后来 Java8 引入了 default 方法还是 static 方法,从而接口中也可以写方法的实现了。现在 Java9 可以在接口中写私有方法了,私有方法不需要复写,别的实现类也无法调用。可能 Java 官方希望淡化接口这种类型,减少一些不需要额外实现的工具方法的重复实现。

  1. Flow API

这个东西的前身叫 rxjava,或者叫 reactive java。事件驱动已经不能简单的用来概括响应式编程了,为什么要增加这样的 API 呢,因为那段时间各个大厂纷纷发力异步编程,弄出很多种所谓的响应式框架,纷纷宣称自己性能好。后来被某个开源联盟联合起来一起出了一个响应式的规范:

  • Subscriber:订阅者

  • Publisher:生产者

  • Subscription:订阅关系

  • Processor:订阅者和生产者之间的 N 个处理步骤

响应式编程并不能提升多少性能,而是使程序更加稳定和获得更好的扩展性。

  1. 集合类的工厂方法

Java 经常被吐槽啰嗦,也确实啰嗦,创建一个小的集合要几步:


Set<String> set = new HashSet<>();

set.add("a");

set.add("b");

set.add("c");


然后再去使用这个 set,四行代码,尤其是这个逐个 add,不像一个现代语言。所以现在可以用简单的写法:

Set<String> set = Set.of("a", "b", "c");

包括 List,Set,Map 都可以使用 of 来直接创建集合。

  1. Stream API 的增强

增加takeWhiledropWhileofNullableiterate的 API,越来越像一些函数式语言了。用法举例如下:

List<Integer> list = Stream.of(2,2,3,4,5,6,7,8,9,10)        .takeWhile(i -> (i % 2 == 0)).collect(Collectors.toList());
复制代码


用户头像

ES_her0

关注

还未添加个人签名 2018.03.21 加入

还未添加个人简介

评论

发布
暂无评论
进击的Java(二)