日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Java16正式發(fā)布,已經(jīng)是Java8的兩倍了

就在剛剛,Java 16正式發(fā)布。

Java 16 正式發(fā)布

主要特性

Vector API(孵化)

提升了Java在CPU向量計(jì)算的性能,這是對(duì)大規(guī)模的張量計(jì)算的支持,提升了Java在AI領(lǐng)域的能力。

啟用了新的C++特性

允許在JDK中C++源代碼中使用 C ++ 14的新特性。

從 Mercurial 遷移到 Git

Git目前已經(jīng)成為代碼版本管理領(lǐng)域的絕對(duì)統(tǒng)治者,現(xiàn)在Java順應(yīng)潮流也使用Git進(jìn)行源代碼管理。

遷移到GitHub

OpenJDK的代碼現(xiàn)在由GitHub托管。

ZGC垃圾收集器

并發(fā)線程堆棧處理的垃圾收集器。

Unix域套接字通道

Unix域套接字對(duì)ServerSocketChannel和SocketChannel的支持。

Alpine Linux Port

在x64和AArch64體系結(jié)構(gòu)上,將JDK移植到Alpine Linux以及其它使用musl C庫(kù)的Linxu發(fā)行版上。

Elastic Metaspace

Hotspot對(duì)類元數(shù)據(jù)的處理(metaspace-元空間)有了很大的改進(jìn)。占用空間減少了,現(xiàn)在可以更快地將未使用的內(nèi)存回收到操作系統(tǒng)。

Windows/AArch64 Port

將 JDK 移植到 Windows / AArch64平臺(tái)。

Foreign Linker API(孵化)

引入一個(gè)API,該API提供對(duì)本地代碼的靜態(tài)類型的純Java訪問。該API與Foreign-Memory API(JEP 393)一起將大大簡(jiǎn)化綁定到本機(jī)庫(kù)的原本容易出錯(cuò)的過程。

Warnings for Value-Based Classes

將原始包裝器類指定為*基于值的類,*并棄用其構(gòu)造函數(shù)以將其刪除,從而提示新的棄用警告。提供有關(guān)在Java平臺(tái)中不正確嘗試在任何基于值的類的實(shí)例上進(jìn)行同步的警告。

Packaging Tool

提供jpackage用于打包獨(dú)立Java應(yīng)用程序的工具。

  • 支持本地打包格式,以為最終用戶提供自然的安裝體驗(yàn)。這些格式包括msi與exe在Windows,pkg并dmg在MacOS,以及deb和rpm在Linux上。
  • 允許在打包時(shí)指定啟動(dòng)時(shí)間參數(shù)。
  • 可以從命令行直接調(diào)用,也可以通過ToolProviderAPI以編程方式調(diào)用。

Foreign-Memory Access API (第三次孵化)

引入一個(gè)API,允許Java程序安全有效地訪問Java堆之外的外部?jī)?nèi)存。

Pattern Matching for instanceof

在此之前 Java 中:

 
 
 
 
  1. // 先判斷類型
  2. if (obj instanceof String) {
  3.     // 然后轉(zhuǎn)換
  4.     String s = (String) obj;
  5.     // 然后才能使用
  6. }

自動(dòng)匹配模式中:

 
 
 
 
  1. if (obj instanceof String s) {
  2.     // 如果類型匹配 直接使用
  3. } else {
  4.     // 如果類型不匹配則不能直接使用
  5. }

Records Class

終于轉(zhuǎn)正了,Java類不再又臭又長(zhǎng)。原來(lái)是這樣的:

 
 
 
 
  1. public class Range {
  2.     private final int min;
  3.     private final int max;
  4.     public Range(int min, int max) {
  5.         this.min = min;
  6.         this.max = max;
  7.     }
  8.     public int getMin() {
  9.         return min;
  10.     }
  11.     public int getMax() {
  12.         return max;
  13.     }
  14.     @Override
  15.     public boolean equals(Object o) {
  16.         if (this == o) return true;
  17.         if (o == null || getClass() != o.getClass()) return false;
  18.         Range range = (Range) o;
  19.         return min == range.min && max == range.max;
  20.     }
  21.     @Override
  22.     public int hashCode() {
  23.         return Objects.hash(min, max);
  24.     }
  25.     @Override
  26.     public String toString() {
  27.         return "Range{" +
  28.           "min=" + min +
  29.           ", max=" + max +
  30.           '}';
  31.     }
  32. }

現(xiàn)在可以簡(jiǎn)化為:

 
 
 
 
  1. public record Range(int min, int max) {}

以往的文章有詳細(xì)介紹。Java 14 新特性之JEP 359: Records(Preview)

默認(rèn)情況下嚴(yán)格封裝JDK

提高JDK的安全性和可維護(hù)性,跟普通開發(fā)者無(wú)關(guān)。

Sealed Classes

密封類,簡(jiǎn)單說(shuō)就是被final修飾的類,密封類不能被繼承,防止了惡意的派生。

另外Oracle發(fā)文對(duì)參與JDK 16貢獻(xiàn)的公司和個(gè)人進(jìn)行了感謝。

Oracle要感謝為ARM,SAP,Red Hat和騰訊等組織工作的開發(fā)人員所做的杰出貢獻(xiàn)。我們也很高興看到較小的組織(例如Ampere Computing,Bellsoft,DataDog,Microdoc和獨(dú)立開發(fā)人員)的貢獻(xiàn),他們共同貢獻(xiàn)了Java 16中3%的修復(fù)程序。

我們同樣感謝許多經(jīng)驗(yàn)豐富的開發(fā)人員,他們審查了建議的更改,嘗試采用早期訪問版本并報(bào)告問題的早期采用者,以及在OpenJDK郵件列表中提供反饋的敬業(yè)專業(yè)人員。

參與JDK16處理Issues的組織

本文轉(zhuǎn)載自微信公眾號(hào)「碼農(nóng)小胖哥」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系碼農(nóng)小胖哥公眾號(hào)。


網(wǎng)頁(yè)題目:Java16正式發(fā)布,已經(jīng)是Java8的兩倍了
本文URL:http://m.5511xx.com/article/djhghos.html