自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java 16 正式發(fā)布,已經(jīng)是Java 8的兩倍了

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

[[388014]]

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

Java 16 正式發(fā)布

主要特性

Vector API(孵化)

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

啟用了新的C++特性

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

從 Mercurial 遷移到 Git

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

遷移到GitHub

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

ZGC垃圾收集器

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

Unix域套接字通道

Unix域套接字對ServerSocketChannel和SocketChannel的支持。

Alpine Linux Port

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

Elastic Metaspace

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

Windows/AArch64 Port

將 JDK 移植到 Windows / AArch64平臺。

Foreign Linker API(孵化)

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

Warnings for Value-Based Classes

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

Packaging Tool

提供jpackage用于打包獨立Java應用程序的工具。

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

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

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

Pattern Matching for instanceof

在此之前 Java 中:

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

自動匹配模式中:

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

Records Class

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

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

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

  1. public record Range(int minint max) {} 

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

默認情況下嚴格封裝JDK

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

Sealed Classes

密封類,簡單說就是被final修飾的類,密封類不能被繼承,防止了惡意的派生。

另外Oracle發(fā)文對參與JDK 16貢獻的公司和個人進行了感謝。

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

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

 

參與JDK16處理Issues的組織

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

 

責任編輯:武曉燕 來源: 碼農(nóng)小胖哥
相關推薦

2015-12-07 09:23:13

PHP 7速度正式發(fā)布

2012-07-12 10:46:39

微軟

2014-04-10 11:27:30

DartDart SDK

2022-05-31 09:10:06

jQuery前端開發(fā)工具

2015-06-18 11:14:02

AndroidiOS應用下載

2024-04-08 18:55:54

RustC++開發(fā)

2015-08-03 17:21:26

APP

2019-08-14 14:13:45

戴爾

2009-08-21 18:55:59

Windows 7市場份額

2011-11-09 09:24:54

Fedora 16

2010-05-24 10:58:19

2020-12-24 19:01:27

戴爾

2014-03-19 11:04:14

Java 8Java8特性

2023-05-26 09:57:41

物聯(lián)網(wǎng)IOT

2021-07-12 14:40:59

以太坊區(qū)塊鏈ETH2.0

2022-03-31 09:28:39

Java代碼字符串split()切割字

2009-06-03 09:16:54

FirefoxMozilla瀏覽器

2022-12-05 14:50:53

2018-11-23 10:48:04

云計算開源云服務

2016-11-17 17:14:17

騰訊云財報云服務
點贊
收藏

51CTO技術棧公眾號