接下来,我们一一对其进行解读。
338: Vector API
Java提供了一些Vector API, 那到底什么是Vector API呢?废话不多说,给你举个例子。我们先写一段普通的Java代码:
- void scalarComputation(float[] a, float[] b, float[] c) {
- for (int i = 0; i < a.length; i++) {
- c[i] = (a[i] * a[i] + b[i] * b[i]) * -1.0f;
- }
- }
那么,用Vector API实现等价逻辑的代码如下所示。是不是更复杂了, CRY~图片,嗯,没关系,反正要用到Vector API起码得是10年以后的事情了:
- static final VectorSpecies<Float> SPECIES = FloatVector.SPECIES_256;
- void vectorComputation(float[] a, float[] b, float[] c) {
- for (int i = 0; i < a.length; i += SPECIES.length()) {
- var m = SPECIES.indexInRange(i, a.length);
- // FloatVector va, vb, vc;
- var va = FloatVector.fromArray(SPECIES, a, i, m);
- var vb = FloatVector.fromArray(SPECIES, b, i, m);
- var vc = va.mul(va).
- add(vb.mul(vb)).
- neg();
- vc.intoArray(c, i, m);
- }
- }
347: Enable C++14 Language Features
一句话概括就是JDK16的C++源码可以使用C++14的语法特性。并且如果在HotSpot源码中确实有用到的话,会给出这些特性的特殊指导说明。
369: Migrate to GitHub
OpenJDK终于也迁移到GitHub中,这个和 JEP 357: Migrate from Mercurial to Git 一起完成的。之前OpenJDK的源代码都是用Mercuial维护的,没听说过?没听说过就对了,也不用浪费时间去了解。
OpenJDK还解释了为什么选择GitHub,主要有3个原因:
- 相比其他产品,GitHub的性能更好。
- GitHub是全球最大的源码托管服务,并且有超过5kw用户。
- GitHub拥有最多用于扩展的API。这些API支撑了很多文本编辑器(例如: Emacs, VS Code, Atom等), IDE工具(IDEA, Eclipse等), 命令行等对它的支持。