JDK16 GA 正式落地: 17个特性,应有尽有,可能是东半球最快解读

接下来,我们一一对其进行解读。

338: Vector API

Java提供了一些Vector API, 那到底什么是Vector API呢?废话不多说,给你举个例子。我们先写一段普通的Java代码:


  1. void scalarComputation(float[] a, float[] b, float[] c) { 
  2.    for (int i = 0; i < a.length; i++) { 
  3.         c[i] = (a[i] * a[i] + b[i] * b[i]) * -1.0f; 
  4.    } 

那么,用Vector API实现等价逻辑的代码如下所示。是不是更复杂了, CRY~图片,嗯,没关系,反正要用到Vector API起码得是10年以后的事情了:


  1. static final VectorSpecies<Float> SPECIES = FloatVector.SPECIES_256; 
  2.  
  3. void vectorComputation(float[] a, float[] b, float[] c) { 
  4.  
  5.     for (int i = 0; i < a.length; i += SPECIES.length()) { 
  6.         var m = SPECIES.indexInRange(i, a.length); 
  7.   // FloatVector va, vb, vc; 
  8.         var va = FloatVector.fromArray(SPECIES, a, i, m); 
  9.         var vb = FloatVector.fromArray(SPECIES, b, i, m); 
  10.         var vc = va.mul(va). 
  11.                     add(vb.mul(vb)). 
  12.                     neg(); 
  13.         vc.intoArray(c, i, m); 
  14.     } 

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个原因:

  1. 相比其他产品,GitHub的性能更好。
  2. GitHub是全球最大的源码托管服务,并且有超过5kw用户。
  3. GitHub拥有最多用于扩展的API。这些API支撑了很多文本编辑器(例如: Emacs, VS Code, Atom等), IDE工具(IDEA, Eclipse等), 命令行等对它的支持。
【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章