沒想到java還是發布了java 10版本,之前有新聞說java以後不會更新了,看來是假的,為了更快地迭代,以及跟進社區反饋,Java 的版本發布周期變更為每六個月一次,並且承諾不會跳票。新的發布周期也會嚴格遵循時間點,將在每年的 3 月份和 9 月份發布。
JEP 286: 局部變量的類型推斷。該特性在社區討論了很久並做了調查,可查看 JEP 286 調查結果
JEP 296: 將 JDK 的多個代碼倉庫合並到一個儲存庫中
JEP 304: 垃圾收集器接口。通過引入一個幹淨的垃圾收集器(GC)接口,改善不同垃圾收集器的源碼隔離性。
JEP 307: 向 G1 引入並行 Full GC
JEP 310: 應用類數據共享。為改善啟動和占用空間,在現有的類數據共享(“CDS”)功能上再次拓展,以允許應用類放置在共享存檔中
JEP 312: 線程局部管控。允許停止單個線程,而不是隻能啟用或停止所有線程
JEP 313: 移除 Native-Header Generation Tool (javah)
JEP 314: 額外的 Unicode 語言標簽擴展。包括:cu (貨幣類型)、fw (每周第一天為星期幾)、rg (區域覆蓋)、tz (時區) 等
JEP 316: 在備用內存設備上分配堆內存。允許 HotSpot 虛擬機在備用內存設備上分配 Java 對象堆
JEP 317: 基於 Java 的 JIT 編譯器(試驗版本)
JEP 319: 根證書。開源 Java SE Root CA 程序中的根證書
JEP 322: 基於時間的版本發布模式。“Feature releases” 版本將包含新特性,“Update releases” 版本僅修複 Bug
以下注釋描述了Java SE 10和JDK 10中的一些增強功能。說明中可能包含指向更詳細描述增強功能的其他文檔的鏈接。有關Java SE 10和JDK 10中重要增強功能和新功能的另一個信息來源是Java SE 10(18.3)(JSR 383)規範,該規範記錄了在Java SE 9和Java SE 10之間製定的規範更改。包括這些新功能的說明和對規範進行更改的增強功能。下麵的描述也可能確定遷移到JDK 10時可能遇到的潛在兼容性問題。請參閱兼容性和規範評估(CSR) 頁麵上的OpenJDK維基頁麵,了解與JDK 10相關的兼容性信息。
核心庫/ java.util中
Optional.orElseThrow()方法 一個新的方法orElseThrow已被添加到Optional課堂上。它是現有get方法的同義詞,並且是現在的首選方法。
核心庫/ java.util中:收藏用於創建不可修改集合的API
已經添加了幾個新的API,以促進創建不可修改的集合。該List.copyOf,Set.copyOf和Map.copyOf方法從現有實例中創建新的集合實例。新的方法toUnmodifiableList,toUnmodifiableSet以及toUnmodifiableMap已被添加到Collectors在流包類。這些允許流的元素被收集到一個不可修改的集合中。
參見JDK-8177290
芯-SVC / java.lang.management 係統屬性以禁用JRE上次使用情況跟蹤
引入了新的係統屬性jdk.disableLastUsageTracking來禁用正在運行的VM的JRE上次使用情況跟蹤。該屬性可以在命令行通過使用被設置 -Djdk.disableLastUsageTracking=true或-Djdk.disableLastUsageTracking。使用此係統屬性集,無論設置的com.oracle.usagetracker.track.last.usage屬性值如何,JRE上次使用情況跟蹤都將被禁用usagetracker.properties。
JDK-8192039(不公開)
芯-SVC / javax.management 為開箱即用的JMX代理散列密碼
jmxremote.passwordJMX代理現在正在使用SHA3-512散列覆蓋文件中的明文密碼。該角色的每一行都遵循以下格式:
role_name W hashedPassword
哪裏:
散列密碼的格式如下:
hashedPassword = base64_encoded_64_byte_salt W base64_encoded_hash W hash_algorithm
哪裏:
如果密碼是明確的,如果滿足以下所有條件,它們將被哈希覆蓋:
為了更改角色的密碼,請將散列的密碼條目替換為新的明文密碼或新的散列密碼。如果新密碼處於清除狀態,則在進行新的登錄嚐試時將用其哈希代替。
給定角色在此文件中至少應有一個條目。如果某個角色沒有條目,則無權訪問。如果為同一個角色名稱找到多個條目,則使用最後一個條目。
用戶生成的哈希密碼文件也可以用來代替明文密碼文件。如果由用戶生成,則散列密碼必須遵循上麵指定的格式。
該文件必須隻能由所有者訪問,否則程序將退出並出現錯誤。
為了防止無意中編輯生產環境中的密碼文件,建議部署隻讀哈希密碼文件。可以通過運行JMX代理預先生成清除密碼的散列條目。
建議在代理運行時不要編輯密碼文件。如果客戶端連接在外部修改文件的同時觸發密碼文件散列,則編輯可能會丟失。文件的完整性是有保證的,但是在代理讀取文件和寫回文件之間的短時間內對文件進行的任何外部編輯可能會丟失。
熱點/ GC G1的JEP 307並行完整GC
通過完全GC並行改善G1最壞情況下的延遲。G1垃圾收集器旨在避免完整收集,但是當並發收集無法快速回收內存時,會發生回退完整GC。完整的GC for G1的舊版本使用單線程標記掃描 - 緊湊算法。使用JEP 307,完整的GC已經並行化,現在使用與年輕和混合集合相同數量的並行工作線程。
參見JDK-8172890
安全庫/ java.security JEP 319根證書
在JDK中提供一組默認的根證書頒發機構(CA)證書。
cacerts用於Linux x64的OpenJDK 9二進製文件的密鑰庫已由JEP 319:根證書 [1] 填充,並帶有由Oracle的Java SE根CA程序的CA頒發的一組根證書。這解決了cacerts用於Linux x64的OpenJDK 9二進製文件中的空密鑰庫問題。cacerts由於未安裝受信任的根證書頒發機構,空的密鑰庫阻止了建立TLS連接。作為OpenJDK 9二進製文件的解決方法,用戶必須將javax.net.ssl.trustStore係統屬性設置為使用不同的密鑰庫。
[1] https://bugs.java.com/view_bug.do?bug_id= JDK-8191486
參見JDK-8189131
安全庫/ javax.net.ssl中 TLS會話哈希和擴展主秘密擴展支持
已為JDK JSSE提供程序中的TLS會話散列和擴展主密鑰擴展(RFC 7627)添加了支持。請注意,一般來說,如果未啟用端點標識並且以前的握手是會話恢複縮略初始握手,則服務器證書更改會受到限製,除非兩個證書所代表的身份可以視為相同。但是,如果啟用或協商擴展,則服務器證書更改限製不是必需的,因此將被相應地丟棄。如果出現兼容性問題,應用程序可能會通過將係統屬性設置為JDK jdk.tls.useExtendedMasterSecret來禁用此擴展的協商false。通過將係統屬性設置jdk.tls.allowLegacyResumption為false,當會話散列和擴展主密鑰擴展未協商時,應用程序可拒絕簡短握手。通過將係統屬性設置jdk.tls.allowLegacyMasterSecret為false,應用程序可拒絕不支持會話散列和擴展主密鑰擴展的連接。
工具/ javac的 生成增強for循環的字節碼生成
字節碼生成已針對增強for循環進行了改進,從而改進了它們的翻譯方法。例如:List
以下是增強後生成的代碼:{ /*synthetic*/ Iterator i$ = data.iterator(); for (; i$.hasNext(); ) { String b = (String)i$.next(); } b = null; i$ = null; }
在for循環之外聲明迭代器變量允許在不再使用它時立即為其分配空值。這使GC可以訪問它,然後可以擺脫未使用的內存。當增強for循環中的表達式是一個數組時,情況類似。
工具/ javadoc的(工具) javadoc支持多種樣式表
一個新的javadoc命令行選項--add-stylesheet已被添加到javadoc工具中。新--add-stylesheet選項支持在生成的文檔中使用多個樣式表。現有的-stylesheetfile選項現在有一個別名,--main-stylesheet以幫助區分主樣式表和其他樣式表。有關更多詳細信息,請參閱javadoc工具的“工具參考”文檔。
參見JDK-8185371
工具/ javadoc的(工具) 重寫不改變規範的方法
新的選項--overridden-methods=值已被添加到javadoc工具中。許多類在不改變規範的情況下重寫繼承的方法。該--overridden-methods=值選項可用於組這些方法與其它的繼承方法,而不是用在類中聲明的其它方法記錄他們的細節。有關更多詳細信息,請參閱javadoc工具的“工具參考”文檔。
參見JDK-8157000
工具/ javadoc的(工具) API說明摘要的注釋標記
添加了一個新的內聯標簽,{@summary ...}以明確指定用作API描述摘要的文本。默認情況下,從第一句推斷API描述的摘要。這是通過使用一個簡單的算法或java.text.BreakIterator。然而,這種啟發式方法並不總是正確的,可能會導致對第一句結尾的錯誤判斷。新的標簽可以顯式設置API摘要文本而不是推斷。請參閱標準Doclet的文檔注釋規範。
刪除的功能和選項
本節介紹在Java SE 10和JDK 10中刪除的API,功能和選項。有關Java SE 10和JDK 10中刪除的功能和選項的另一信息源是Java SE 10(18.3)(JSR 383)規範,它記錄了在Java SE 9和Java SE 10之間製定的規範的更改。此文檔包括識別刪除的API和未在此處描述的功能。下麵的描述還可能確定遷移到JDK 10時可能遇到的潛在兼容性問題。請參閱OpenJDK wiki上的兼容性和規範評審(CSR)頁麵,以獲取與JDK 10相關的兼容性信息。
客戶端庫 取消對使用舊LookAndFeel的支持
應用程序不再可以使用舊的或不支持的LookAndFeels。某些應用程序(例如Nimbus和Aqua)使用舊的類名來實例化JDK內部的Swing LookAndFeels。例如:
("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
這些類是JDK的內部類,應用程序應始終如此對待它們。使用這些類名實例化JDK內部Swing LookAndFeels的應用程序現在必須遷移到以下API:
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
參見JDK-8185683
核心庫/ java.lang中 刪除Runtime.getLocalizedInputStream和getLocalizedOutputStream方法
這些方法Runtime.getLocalizedInputStream和Runtime.getLocalizedOutputStream已被刪除。它們是過時的國際化機製的一部分,並沒有已知的用途。
核心庫/ java.rmi中 刪除RMI服務器端多路複用協議支持
RMI Multiplex協議在JDK 9中被禁用,並且已被刪除。有關背景和曆史,請參閱JDK-8087189。
參見JDK-8087189
部署/插件 刪除常見的DOM API
該com.sun.java.browser.plugin2.DOM和sun.plugin.dom.DOMObjectAPI已被刪除。應用程序可以netscape.javascript.JSObject用來操縱DOM。
熱點/運行 拆除FlatProfiler
在JDK 9中棄用的FlatProfiler已通過刪除實現代碼而過時。通過設置-XprofVM參數來啟用FlatProfiler 。該-Xprof版本仍然被認可,但是,設置它將打印出警告消息。
熱點/運行 刪除過時的-X選項
過時的HotSpot VM選項(-Xoss,-Xsqnopause,-Xoptimize,-Xboundthreads和-Xusealtsigs)已被刪除。
對於Aqua使用:
對於Nimbus使用:
javax.swing.UIManager.setLookAndFeel("apple.laf.AquaLookAndFeel");
javax.swing.UIManager.setLookAndFeel
base64_encoded_64_byte_salt = 64字節隨機鹽
base64_encoded_hash = Hash_algorithm(密碼+鹽)
W =空格或製表符
hash_algorithm =使用格式https://docs.oracle.com/javase/9/docs/specs/security/standard-names.htmlmessagedigest-algorithms指定的算法字符串。這是個可選的選項。如果未指定,則認為SHA3-512是算法字符串。
role_name是任何不包含空格或製表符的字符串。
W =空格或製表符
com.sun.management.jmxremote.password.toHashes屬性在management.properties文件中設置為true 。
密碼文件是可寫的。
如果配置了安全管理器,則係統安全策略允許寫入密碼文件。
76.4M / 03-25
立即下載55M / 06-05
立即下載237.9M / 04-13
立即下載140.5M / 03-06
立即下載900.9M / 03-02
立即下載96.2M / 07-06
立即下載311.2M / 07-06
立即下載335M / 07-06
立即下載200M / 07-06
立即下載413.8M / 07-06
立即下載353.9M / 06-05
立即下載131.8M / 04-13
立即下載230.8M / 03-03
立即下載195.6M / 03-03
立即下載165.4M / 03-03
立即下載45.6M / 09-08
立即下載665.2M / 07-06
立即下載2.84G / 07-06
立即下載93M / 07-06
立即下載338.3M / 07-06
立即下載1.38G / 07-26
立即下載488.3M / 07-16
立即下載109.8M / 06-03
立即下載142M / 01-08
立即下載1.2M / 11-23
立即下載548.8M / 04-13
立即下載1.6M / 04-13
立即下載1.48G / 03-18
立即下載646.6M / 03-03
立即下載133.7M / 03-03
立即下載325.8M / 06-07
立即下載60M / 04-29
立即下載254M / 04-25
立即下載659M / 04-23
立即下載1M / 12-26
立即下載253.4M / 12-08
立即下載253M / 12-08
立即下載1.19G / 11-16
立即下載110.5M / 04-23
立即下載26.7M / 03-16
立即下載488.3M / 07-16
立即下載248.9M / 12-08
立即下載248.9M / 12-08
立即下載201.2M / 04-13
立即下載100.6M / 03-06
立即下載148.9M / 03-06
立即下載1.12G / 07-06
立即下載1.25G / 07-06
立即下載9.48G / 07-06
立即下載50KB / 07-06
立即下載116.2M / 04-10
立即下載1.92G / 04-17
立即下載201.5M / 04-13
立即下載7.31G / 07-01
立即下載94.3M / 07-06
立即下載2.48G / 07-06
立即下載7.63G / 07-06
立即下載1M / 07-06
立即下載778.1M / 07-06
立即下載509.7M / 07-06
立即下載561.8M / 07-11
立即下載1.32G / 01-19
立即下載72M / 07-06
立即下載548.7M / 07-06
立即下載1.00G / 07-06
立即下載9.13G / 07-06
立即下載126.2M / 07-06
立即下載72M / 07-06
立即下載105.1M / 07-06
立即下載132M / 07-06
立即下載