<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Java 16 正式發(fā)布!你還學得動嗎?

          共 4263字,需瀏覽 9分鐘

           ·

          2021-03-18 21:02

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

          Java 16 正式發(fā)布

          主要特性

          Vector API(孵化)

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

          啟用了新的C++特性

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

          從 Mercurial 遷移到 Git

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

          遷移到GitHub

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

          ZGC垃圾收集器

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

          Unix域套接字通道

          Unix域套接字對ServerSocketChannelSocketChannel的支持。

          Alpine Linux Port

          在x64和AArch64體系結(jié)構(gòu)上,將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

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

          Packaging Tool

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

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

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

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

          Pattern Matching for instanceof

          在此之前 Java 中:

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

          自動匹配模式中:

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

          Records Class

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

          public class Range {

              private final int min;
              private final int max;

              public Range(int min, int max) {
                  this.min = min;
                  this.max = max;
              }

              public int getMin() {
                  return min;
              }

              public int getMax() {
                  return max;
              }

              @Override
              public boolean equals(Object o) {
                  if (this == o) return true;
                  if (o == null || getClass() != o.getClass()) return false;
                  Range range = (Range) o;
                  return min == range.min && max == range.max;
              }

              @Override
              public int hashCode() {
                  return Objects.hash(min, max);
              }

              @Override
              public String toString() {
                  return "Range{" +
                    "min=" + min +
                    ", max=" + max +
                    '}';
              }
          }

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

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

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

          默認情況下嚴格封裝JDK

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

          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的組織

          推薦關(guān)注本文作者:碼農(nóng)小胖哥

          分享高質(zhì)量編程知識,探討IT人生

          技術(shù)干貨,實戰(zhàn)技巧,面試技巧,前沿資訊一個都不能少

          往期推薦

          如何用一句話得罪 95% 的中國人?昨天這家公司做到了...

          攜手阿里云送一波超大福利!不僅有低價ECS,更有機械鍵盤、AirPods Pro等好禮!

          奇奇怪怪的大佬:理發(fā)店小弟到阿里P10

          重磅!微信 3.0 客戶端支持刷朋友圈了!從此愛上上班還是無心上班?

          你以為在做的是微服務?不!你只是做了個比單體還糟糕的分布式單體!


          喜歡的這里報道

          ↘↘↘

          瀏覽 56
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日韩黄色网络 | 九九九九久久久久 | 日韩成人三级片 | 做爱污污短视屏在线观看 | 色天天男人天堂婷婷 |