Java 9 將采用新的版本字符串格式

screenshot在現有的版本編碼格式使用了兩年之后,從Java 9開始,Java版本方案將根據業內軟件版本編碼的最佳實踐進行修改。使用或解析Java版本字符串的應用程序開發人員要注意了,因為這種變化可以會影響他們的應用程序。

正如JEP 223所闡述的那樣,當前的版本方案會跳過某些版本號,而且安全補丁版本和更新版本混在一起。社區認為,該方案產生的版本號含義模糊、不直觀。為了解決這個問題,Oracle引入了一種使用語義版本編碼的新版本方案,就是說,Java版本字符串將依次包含如下三個部分:主版本號、小(維護)版本號和安全版本號。長版本格式還將包含像構建版本號和可用性這樣的信息。

主版本號即我們通常所理解的Java版本,比如,Java 9的主版本是9。因此,按照Java的新版本發布計劃,主版本的變化只會兩年或三年發生一次。主版本的變化可能會包含破壞性變更,但這些變更至少會提前兩個主版本通知。

小版本號將包含非重要Bug修復、所支持API的維護發布以及增加內部組件,如新的服務提供程序、新的垃圾收集器,或者支持新的架構。同更新補丁集一樣,小版本有望每季度發布一次。

最后,安全版本將包含重要Bug修復。這些版本可能像重要補丁更新那樣根據計劃按季度發布,或者像安全警報那樣按需發布。

關于這點,有個值得注意的結論是,在認識到社區將當前版本號中的第二個數字作為事實上的主版本號,而開頭的1被理解為沒有意義之后,Oracle去掉了版本號開頭的“1”。這一變化可能會導致目前解析版本字符串而有假定版本號開頭為1或點的應用程序出現問題。例如,

System.getProperty("java.version").indexof('.');

上述獲取主版本的代碼會返回-1(尾部的0會從版本字符串中去掉,因此,9.0.0會簡單地表示成9)。

新方案將成為Java版本字符串的第三個標準。第一個始于Java 1.3。該方案相當簡單,使用第二個數字作為實際的主版本,第三個數字表明是一個安全修復(奇數)還是更新(偶數)。這種編碼系統存在缺陷,有時候會迫使一些版本重新編碼。

為了解決這個問題,Oracle引入了當前的版本系統。在當前的方案下,安全補丁仍然使用奇數,更新仍然使用偶數,雖然并不連續。更新總是20的倍 數,重要補丁更新的版本通過在最新的維護更新上增加5的倍數(為了保證版本號為奇數,必要的時候要加1)計算得出。這樣,如果維護版本號是20,那么按照 計劃,后續安全版本將是25、31和35。版本號之間留出的數字將用于安全警報補丁的發布,這樣就不需要重新編碼其他計劃好的版本號。

新的版本編碼系統旨在采用一種能夠區分更新和安全補丁的方式,而且是一種識別要簡單許多的方式。

====================================分割線================================
文章轉載自 開源中國社區[http://www.oschina.net]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395555.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395555.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395555.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle 表更新表,Oracle 更新表(另一張表)

JUC學習筆記--Thread多線程基礎實現多線程的兩種方法 java 實現多線程通過兩種方式1.繼承Thread類 ,2.實現Runnable接口 class Newthead extends Thread{ public void ru ...SharePoint中新創建的Web Application在瀏覽器中報404錯誤問題描述:在安裝完成SharePoint 2010后,進入…

jQuery(愛前端)

一 jQuery 簡介 官網:www.jquery.com 口號:寫更少的代碼,做更多的事情 jQuery 是一個快速、小型的、特性很多的JS庫,它把很多事兒都變得簡單。jQuery是免費的、開源的。 jQuery 是 DOM 編程領域的霸主,極大的簡化了原生…

跳過 centos部署 webpy的各種坑

用centos部署webpy發現的各種坑: 1、python 版本: 2、中文編碼: 3、web模塊路徑: 在命令行里輸入python,能import web,但是網站錯誤報告一直報告沒有找到web模塊,說明web模塊路徑有問題。python…

撰寫本文的所有基本React.js概念

Update: This article is now part of my book “React.js Beyond The Basics”.更新:本文現在是我的書《超越基礎的React.js》的一部分。 Read the updated version of this content and more about React at jscomplete.com/react-beyond-basics.在jscomplete.com…

CentOS 7 firewalld使用簡介

2019獨角獸企業重金招聘Python工程師標準>>> Centos升級到7之后,發現無法使用iptables控制Linuxs的端口,google之后發現Centos 7使用firewalld代替了原來的iptables。下面記錄如何使用firewalld開放Linux端口: 1.快速使用說明 開啟…

簡述java語言的特點

簡述java語言的特點: ① 簡單的特性 ② 面向對象的特性 ③ 分布式處理的特性 ④ 健壯的特性 ⑤ 結構中立的特性 ⑥ 安全特性 ⑦ 可移植的特性 ⑧ 解釋的特性 ⑨ 高性能的特性 ⑩ 多線程的特性 轉載于:https://www.cnblogs.com/qq1335…

php函數嵌套 作用域,javascript 嵌套的函數(作用域鏈)_javascript技巧

嵌套的函數(作用域鏈)當你進行函數的嵌套時,要注意實際上作用域鏈是發生變化的,這點可能看起來不太直觀。你可把下面的代碼置入firebug監視值的變化。var testvar window屬性;var o1 {testvar:1, fun:function(){alert(o1: this.testvaro1.fun();1o2.f…

【C#-枚舉】枚舉的使用

枚舉是用戶定義的整數類型。 namespace ConsoleApplication1 {/// <summary>/// 在枚舉中使用一個整數值&#xff0c;來表示一天的階段/// 如&#xff1a;TimeOfDay.Morning返回數字0/// </summary>class EnumExample{public enum TimeOfDay{Morning 0,Afternoon …

Elixir 初嘗試 5 -- 遇見Actor

Actor模型的定義 wiki如是說 The actor model in computer science is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent computation. In response to a message that it receives, an actor can: …

創建外部快照_快照事件:現在如何僅通過拍照即可創建日歷事件

創建外部快照by Arjun Krishna Babu通過Arjun Krishna Babu 快照事件&#xff1a;現在如何僅通過拍照即可創建日歷事件 (Snap Event: How you can now create calendar events just by taking a picture) Google just published my first Android app, Snap Event, in their P…

一個備份sql server文件.bak還原成兩個數據庫

一直對這個概念很模糊&#xff0c;今天具體一點。 備份文件只要是正常的.bak文件就好。 數據庫>還原數據庫 直接填寫還原之后的文件名就行。 用一份備份文件還原兩個一樣的庫&#xff0c;只是名稱不一樣。 轉載于:https://www.cnblogs.com/Ly426/p/10209825.html

linux服務器防病毒,Linux系統中你不需要防病毒?_服務器評論-中關村在線

誤區4&#xff1a;Linux是無病毒。Linux的安全性這么好&#xff0c;這是否意味著Linux是無病毒嗎&#xff1f;現實&#xff1a;Linux是非常安全&#xff0c;并不是沒有針對Linux方面的病毒。有許多針對Linux的已知病毒。但是幾乎所有的已知病毒對于Linux在本質上都是非破壞性的…

外置接口請求

1. 請求接口 /*** 請求接口** param url* param paramsStr* param type Connection.Method.POST* param heads* return*/ public JSONObject sendUpload(String url, String paramsStr, Connection.Method type, Map<String, String> heads) {//發送上傳訂單請求Str…

python面向對象-1方法、構造函數

類是指&#xff1a;描述一種事物的定義&#xff0c;是個抽象的概念 實例指&#xff1a;該種事物的一個具體的個體&#xff0c;是具體的東西 打個比方&#xff1a; “人”是一個類。“張三”是人類的一個具體例子 在編程時也是同樣的道理&#xff0c;你先自己定義一個“類”&am…

bzoj3503: [Cqoi2014]和諧矩陣

高斯消元解異或方程組。學了bitset。對比如下 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define REP(i,s,t) for(int is;i<t;i) #define dwn(i,s,t) for(int is;i>t;i--) #define clr(…

她偏愛雛菊一樣的淡黃色_為什么開源項目(非常)偏愛新用戶,以及您可以采取什么措施...

她偏愛雛菊一樣的淡黃色by Filip Hracek由Filip Hracek 為什么開源項目(非常)偏愛新用戶&#xff0c;以及您可以采取什么措施 (Why open source projects (sadly) favor new users, and what you can do about it) Every now and then, all developer products (SDKs, framewo…

linux 腳本 expected,Linux | shell與expect結合使用

在linux操作系統下&#xff0c;使用腳本自動化&#xff0c;一般由兩種方案。方案一&#xff1a;telnetftp方案二&#xff1a;sshscpexpect。以下主要使用sshscpexpect為例進行說明使用方式。第一步&#xff1a;安裝expect&#xff1a;yum -y install expect第二步&#xff1a;驗…

[Swift]LeetCode246.對稱數 $ Strobogrammatic Number

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★?微信公眾號&#xff1a;山青詠芝&#xff08;shanqingyongzhi&#xff09;?博客園地址&#xff1a;山青詠芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;?GitHub地址&a…

C++中父類的虛函數必需要實現嗎?

一、情景 C中父類的虛函數必需要實現嗎&#xff1f; class Vir{ public:virtual void tryVirtual(); };class CVir:public Vir{ public:void tryVirtual(){std::cout<<"CVir"<<std::endl;} };二、說明 &#xff08;1&#xff09;在main函數中&#xff0c…

解決新浪微博API調用限制 突破rate_limit_status瓶頸

新浪微博開放平臺API的調用和TWITTER接口一樣&#xff0c;都是受限的&#xff0c;以小時為單位進行限定。 他有兩個限制原則 1.用戶不登錄基于IP的限制&#xff0c;每小時1000次 2.用戶登錄了基于用戶的限制&#xff0c;每小時1000次 如果應用是用戶不登錄的那么就是對IP進行限…