在其CodeOne會議上,Oracle解釋了Java SE 13正式發佈後Java的快速發佈週期如何帶來創新。java
在過去的二十多年中,Java編程語言新版本的開發速度相對較慢,僅每隔幾年就會進行重大更新。甲骨文在2018年推出了一項新的發佈策略,現在這一切都發生了變化,如今該策略如今每一年能夠看到多個Java版本,包括本週早些時候發佈的版本。程序員
在9月16日與OpenWorld共同舉辦的CodeOne會議上,甲骨文宣佈Java SE 13(JDK 13)的全面上市,爲開發人員提供了能夠提升生產率和效率的新功能。在CodeOne主題演講中,Oracle Java語言架構師Brian Goetz概述了Java在最近幾年取得的進展,並強調了Java 13引入的新功能。編程
Goetz說:「起初,不少人對快速發佈的節奏持懷疑態度,由於咱們很難像Java這樣大的船能迅速變大。」 「甚至有人擔憂Java 10和Java 11可能根本沒有功能,而且日後看,很難誇大快速發佈節奏已經帶來的重大變化。」架構
Goetz說,每一年發佈多個版本意味着能夠將更多功能交付給開發人員。不過,也許更重要的是如今如何設計功能-在較小的部分中利用發佈週期。新週期的一個缺點是,開發人員和最終用戶並不老是清楚爲何以及什麼時候須要升級。編程語言
Goetz說:「在舊世界中,當咱們每隔幾年發佈大量版本,而這些較大的版本每每具備較大的功能時,就會有足夠的升級動力。」 「如今,現實是,咱們未來不會看到不少大型功能,這不是由於咱們沒有創新,而是由於這些大型功能將分解爲較小的功能並交付使用分階段進行。」優化
新的Java 13更新是該版本的一個很好的示例,該版本沒有大量的新功能,可是隨着功能的成熟,爲開發人員提供了增量改進。spa
Java 13的新功能中有一項稱爲動態CDS(類數據共享)的功能。根據Java加強建議350(JEP 350),該功能的主要目標是提升應用程序類數據共享(AppCDS)的可用性,並消除了用戶進行試運行覺得每一個應用程序建立類列表的需求。操作系統
JEP 351在Java 13中定義了一項新功能,使程序能夠取消提交未使用的內存。該功能經過將未使用的堆內存返回給操做系統來改善內存管理。.net
Goetz在主題演講中概述的Java 13的預覽功能之一是JEP 355,它是一種樣式優化功能,稱爲文本塊。設計
他談到文本塊時說:「這不是一個特別複雜的功能。」 「但這在平常代碼中有很大的不一樣。」
根據Goetz的說法,沒有文本塊,若是開發人員想要將HTML Web代碼引入Java,則須要使用一些額外的步驟和代碼字符串,這些步驟既混亂又容易出錯。文本塊的JEP詳細信息指出,它們的目標是加強Java程序中字符串的可讀性,這些Java程序表示使用非Java語言編寫的代碼。
儘管每一個Java版本都具備新功能,可是Oracle以不一樣的代號名稱對許多主要的開發工做進行了分組,這將引導Java 14及更高版本中的功能開發。
大型項目之一是Amber項目,該項目所有與面向生產力的功能有關。Valhalla項目正在不斷改進Java虛擬機。而Project Loom就是要在Java之上支持新的編程模型。
Goetz說:「對於Java來講,這是一個美好的時光。」 「咱們交付速度更快,每一個版本中都有有用的功能,而且面向將來的管道比以往任什麼時候候都更好。」