进击的 Java(九)
前几期讲的特性已经几乎涵盖了日常的开发了,但 Java 的野心不止于此,Java 还想继续提升性能,可能绝大多数开发者不会用到,能用到的也不会选择 Java,但这不妨碍 Java 做技术储备。有时候我觉得 17 只是把前几期的版本做了一下 bug 修复和完善,然后改一下版本号。下面简单介绍一下 16 之后的版本都有什么。
向量 API
Java 很早之前就有 Vector 这样的数据结构,但这次发布的 vector 要高端的多。真正实现了 Java 的高性能向量计算。什么是向量呢?向量是一个有大小和方向的量,可以表示二维或者三维的空间,让空间的运算得到抽象并映射成计算公式。Java 这次就是要给 AI 开发者一个高性能的 API,虽然还是预览的版本。稍微深究一下,传统的 CPU 指令集是 SISD(单指令单数据),Vector API 会讲计算的代码转换成 SIMD(单指令多数据),最大程度的压榨 CPU 以获取较高的性能。
switch 模式匹配
之前提到过 instanceof 的模式匹配,提到过 switch 的->
表达式。现在将两者结合起来,switch 的同时进行类型的匹配,之前提到的 sealed class 也是在为这个新特性打基础。现在 switch 可以这么写:
复制代码
可以注意到是支持 null 判断的,这样就不用在外面单独写一层 if 判断空了。同时,case 的条件也可以是多个:
复制代码
做运算也没问题:
复制代码
可以看出 Java 真的在努力改变自己曾经啰嗦的印象,掌握了开发者的喜好密码。
评论