JDK新功能
在預(yù)覽階段添加文本塊。文本塊是一個(gè)多行字符串文字,可以避免大多數(shù)轉(zhuǎn)義序列的需要。文本塊以可預(yù)測(cè)的方式自動(dòng)格式化字符串,并使開(kāi)發(fā)人員可以控制格式。該項(xiàng)目列舉了為Java添加文本塊背后的一些目標(biāo)。
一個(gè)目標(biāo)是通過(guò)使表達(dá)跨越幾行源代碼的字符串變得容易,同時(shí)避免常見(jiàn)情況下的轉(zhuǎn)義序列來(lái)簡(jiǎn)化Java程序的編寫(xiě)。
第二個(gè)目標(biāo)是增強(qiáng)程序中字符串的可讀性,這些程序表示用非Java語(yǔ)言編寫(xiě)的代碼。
第三個(gè)目標(biāo)是通過(guò)規(guī)定任何新構(gòu)造可以表達(dá)與字符串文字相同的字符串集,解釋相同的轉(zhuǎn)義序列,并像字符串文字一樣進(jìn)行操作來(lái)支持字符串文字的遷移。原始字符串文字是JDK 13提出的一個(gè)特性,但有利于文本塊,它采用了不同的方法來(lái)表示字符串而不轉(zhuǎn)義換行符和引號(hào)。原始字符串文字專(zhuān)注于字符串的原始性,但Java項(xiàng)目團(tuán)隊(duì)現(xiàn)在認(rèn)為焦點(diǎn)是錯(cuò)誤的,因?yàn)殡m然原始字符串文字可能跨越多行源代碼,但它們涉及支持未轉(zhuǎn)義分隔符的昂貴要求。已經(jīng)為JDK 13預(yù)測(cè)了原始字符串文字,但從未正式添加到其建議的功能列表中。
重新實(shí)現(xiàn)傳統(tǒng)套接字API,這將涉及使用更簡(jiǎn)單,更現(xiàn)代的實(shí)現(xiàn)替換API net.Socket和java.net.ServerSocketAPI 使用的底層實(shí)現(xiàn),易于調(diào)試和維護(hù)。新的實(shí)現(xiàn)旨在易于適應(yīng)使用用戶(hù)模式線程(也稱(chēng)為光纖),這些線程正在Project Loom中進(jìn)行探索。上述傳統(tǒng)API可以追溯到JDK 1.0,并且包含傳統(tǒng)C和Java代碼的混合,這些代碼被描述為調(diào)試和維護(hù)的痛苦。遺留實(shí)現(xiàn)還存在其他問(wèn)題:支持異步關(guān)閉,導(dǎo)致可靠性和移植問(wèn)題的本機(jī)數(shù)據(jù)結(jié)構(gòu),以及需要徹底檢查的并發(fā)問(wèn)題。
JDK提出了第二個(gè)switch表達(dá)式預(yù)覽。在JDK 12中有一個(gè),但是要進(jìn)行一個(gè)更改:要從switch表達(dá)式中生成一個(gè)值break,要?jiǎng)h除with value語(yǔ)句以支持a yield聲明。目的是擴(kuò)展,switch以便它可以用作語(yǔ)句或表達(dá)式,因此兩個(gè)表單既可以使用case ... :帶有連貫符號(hào)的傳統(tǒng)標(biāo)簽,也可以使用新case … ->標(biāo)簽,而不需要通過(guò),還有一個(gè)新的語(yǔ)句用于從switch表達(dá)式中產(chǎn)生值。這些更改將簡(jiǎn)化編碼并為模式匹配做好準(zhǔn)備。
增強(qiáng)ZGC(Z垃圾收集器)以將未使用的內(nèi)存返回到操作系統(tǒng),引用的提議被集成到JDK 13中.ZGC被稱(chēng)為可擴(kuò)展的低延遲收集器,目前不會(huì)將未使用的內(nèi)存返回到操作系統(tǒng)即使長(zhǎng)時(shí)間沒(méi)有使用內(nèi)存。對(duì)于某些應(yīng)用程序和環(huán)境而言,此行為并非最佳,尤其是那些需要關(guān)注內(nèi)存占用的應(yīng)用程序和環(huán)境,例如應(yīng)用程序可能長(zhǎng)時(shí)間處于空閑狀態(tài)并與其他應(yīng)用程序共享或競(jìng)爭(zhēng)資源的容器或環(huán)境。
擴(kuò)展應(yīng)用程序類(lèi) - 數(shù)據(jù)共享(AppCDS),以便在應(yīng)用程序執(zhí)行結(jié)束時(shí)動(dòng)態(tài)存檔類(lèi)。存檔類(lèi)將包括默認(rèn)的基礎(chǔ)層CDS存檔中不存在的所有已加載的應(yīng)用程序和庫(kù)類(lèi)。該提案處于目標(biāo)階段,旨在提高AppCDS的可用性,并消除用戶(hù)進(jìn)行試運(yùn)行以創(chuàng)建每個(gè)應(yīng)用程序的類(lèi)列表的需要。
JDK特征
350:動(dòng)態(tài)CDS檔案
351:ZGC:取消使用未使用的內(nèi)存
353:重新實(shí)現(xiàn)Legacy Socket API
354:切換表達(dá)式(預(yù)覽)
355:文本塊(預(yù)覽)
JDK安裝步驟
1、從本站下載并解壓安裝包,雙擊jdk-13_windows-x64_bin.exe運(yùn)行,點(diǎn)擊下一步。
2、選擇安裝路徑,選擇好之后點(diǎn)擊下一步。
3、正在安裝中,請(qǐng)稍等一會(huì)兒。
4、安裝完成,點(diǎn)擊關(guān)閉退出向?qū)А?
JDK使用說(shuō)明
1、版本字符串格式
Java SE平臺(tái)采用基于時(shí)間的發(fā)布模型,JDK每六個(gè)月發(fā)布一次。
從JDK 10及更高版本開(kāi)始,版本字符串的格式反映了Java SE平臺(tái)的基于時(shí)間的發(fā)布模型$FEATURE.$INTERIM.$UPDATE.$PATCH。
$FEATURE是每個(gè)功能版本增加的版本號(hào)。功能版本包含新功能以及Java SE平臺(tái)規(guī)范指定的現(xiàn)有功能的更改。版本號(hào)每六個(gè)月遞增一次。例如,2018年3月發(fā)行版的版本號(hào)為10,2018年9月發(fā)行版的版本號(hào)為11,依此類(lèi)推。
$INTERIM是每個(gè)臨時(shí)版本增加的版本號(hào),其中包含錯(cuò)誤修復(fù)和增強(qiáng)功能。臨時(shí)版本不包含不兼容的更改,功能刪除,也不包含對(duì)標(biāo)準(zhǔn)API的任何更改。由于六個(gè)月的發(fā)布模型不包含臨時(shí)版本,因此臨時(shí)版本的版本號(hào)始終為零(0)。但是,此版本號(hào)保留用于將來(lái)的臨時(shí)版本(如果有)。
$UPDATE是更新版本增加的版本號(hào),其中包括針對(duì)安全問(wèn)題,回歸和新功能中的錯(cuò)誤的修復(fù)程序。版本號(hào)在$FEATURE發(fā)布后一個(gè)月遞增,之后每三個(gè)月遞增一次。例如,完整的版本號(hào)為10月更新版本是13 .0.1,完整的版本號(hào)為1月更新版本是13 .0.2,等等。
$PATCH 是緊急修補(bǔ)程序版本增加的版本號(hào),用于修復(fù)關(guān)鍵問(wèn)題。
版本字符串沒(méi)有尾隨零元素。例如,如果值$FEATURE是13,的值$INTERIM是0,的值$UPDATE是1,和的值$PATCH是0,則完整的版本號(hào)是13 .0.1。
2、開(kāi)始使用JDK
使用Windows“ 開(kāi)始”菜單中的Java Development Kit訪問(wèn)與參考文檔相關(guān)的信息。
在JDK安裝期間,Java菜單項(xiàng)將添加到Windows“ 開(kāi)始”菜單中,以便于訪問(wèn)“參考文檔”,這是在線文檔網(wǎng)頁(yè)。
在JDK安裝和卸載過(guò)程中,會(huì)更新相應(yīng)的開(kāi)始菜單項(xiàng),以便它們與系統(tǒng)上的最新JDK版本相關(guān)聯(lián)。
注意:Windows 7和Windows 10有一個(gè)開(kāi)始菜單; 但是,該菜單在Windows 8和Windows 8.1中不可用。Windows 8和Windows 8.1中的JDK和Java信息可在以下Start目錄中找到:%ALLUSERSPROFILE%MicrosoftWindowsStart MenuPrograms。
3、在Windows上卸載JDK
要卸載JDK 13,請(qǐng)使用Microsoft Windows 控制面板中的“ 添加/刪除程序”實(shí)用程序。
4、JDK安裝故障排除
以下部分提供了在安裝JDK時(shí)解決問(wèn)題的提示(如果有)。
解壓縮期間的系統(tǒng)錯(cuò)誤:
如果看到錯(cuò)誤消息:system error during decompression,則磁盤(pán)上可能沒(méi)有足夠的空間包含該TEMP目錄。
程序無(wú)法在DOS模式下運(yùn)行:
如果看到錯(cuò)誤消息: This program cannot be run in DOS mode,則執(zhí)行以下操作:
打開(kāi)MS-DOS shell或命令提示符窗口。
右鍵單擊標(biāo)題欄。
選擇屬性。
選擇“ 程序”選項(xiàng)卡。
單擊高級(jí)。
確保未選中“ 防止基于MS-DOS的程序檢測(cè)Windows”項(xiàng)。
選擇確定。
再次選擇確定。
退出MS-DOS shell。
重啟你的電腦。
不屬于系統(tǒng)代碼頁(yè)的字符:
如果安裝目錄不是系統(tǒng)區(qū)域設(shè)置的代碼頁(yè)的一部分,則可能會(huì)發(fā)生1722錯(cuò)誤。要防止這種情況發(fā)生,請(qǐng)確保用戶(hù)和系統(tǒng)區(qū)域設(shè)置完全相同,并且安裝路徑僅包含屬于系統(tǒng)區(qū)域設(shè)置代碼頁(yè)的字符??梢栽凇? 區(qū)域選項(xiàng)”或“ 區(qū)域設(shè)置”控制面板中設(shè)置用戶(hù)和系統(tǒng) 區(qū)域設(shè)置。
相關(guān)的錯(cuò)誤號(hào)是4895647。
5、JDK 13發(fā)布的重大變化
以下是Java SE 13和JDK 13中的一些重要增強(qiáng)功能:
動(dòng)態(tài)CDS歸檔擴(kuò)展了應(yīng)用程序類(lèi) - 數(shù)據(jù)共享(ApsCDS),允許在Java應(yīng)用程序退出時(shí)動(dòng)態(tài)歸檔類(lèi)。請(qǐng)參閱JEP 350:動(dòng)態(tài)CDS存檔。
Java語(yǔ)言中添加了文本塊,可以在需要時(shí)為開(kāi)發(fā)人員提供對(duì)格式的控制。這是一種預(yù)覽語(yǔ)言功能。請(qǐng)參閱JEP 355文本塊(預(yù)覽)和JEP 12:預(yù)覽語(yǔ)言和VM功能。
的switch表達(dá),預(yù)覽的語(yǔ)言特性,一直延續(xù)到被用作任何聲明或表達(dá)式,從而使這兩種形式可以使用傳統(tǒng)的標(biāo)簽(與告吹)或新標(biāo)簽(沒(méi)有落空)。它與另一個(gè)新語(yǔ)句一起使用,用于從switch表達(dá)式中生成值。請(qǐng)參閱JEP 354:切換表達(dá)式(預(yù)覽)和JEP 12:預(yù)覽語(yǔ)言和VM功能。
java.net.Socket和 java.net.ServerSocketAPI 使用的實(shí)現(xiàn)被 更簡(jiǎn)單,更現(xiàn)代的實(shí)現(xiàn)取代,易于維護(hù)和調(diào)試。請(qǐng)參閱JEP 353:重新實(shí)現(xiàn)舊版套接字API。
支持Unicode 12.1。請(qǐng)參閱Unicode 12.1。
ZGC已得到增強(qiáng),可將未使用的堆內(nèi)存返回給操作系統(tǒng),從而增強(qiáng)了應(yīng)用程序的內(nèi)存占用。請(qǐng)參閱JEP 351 ZGC Uncommit Unused Memory。
此外,還需要了解與安全相關(guān)的更新以及一些已刪除的工具和組件??吹剑?
安全更新
刪除了API,工具和組件
6、JDK
Java Development Kit(JDK)API特定于JDK,并不一定適用于Java SE Platform的所有實(shí)現(xiàn)。這些API位于名稱(chēng)以其開(kāi)頭的模塊中jdk。
jdk.accessibility
定義Assistive Technologies實(shí)現(xiàn)者使用的JDK實(shí)用程序類(lèi)。
jdk.attach
定義附加API。
jdk.charsets
提供charsets不在java.base(大多數(shù)是雙字節(jié)和IBM字符集)。
jdk.compiler
定義 系統(tǒng)Java編譯器 及其命令行等效項(xiàng)javac的實(shí)現(xiàn)。
jdk.crypto.cryptoki
提供SunPKCS11安全提供程序的實(shí)現(xiàn)。
jdk.crypto.ec
提供SunEC安全提供程序的實(shí)現(xiàn)。
jdk.dynalink
定義用于動(dòng)態(tài)鏈接對(duì)象上的高級(jí)操作的API。
jdk.editpad
提供使用的編輯板服務(wù)的實(shí)現(xiàn)jdk.jshell。
jdk.hotspot.agent
定義HotSpot可維護(hù)性代理的實(shí)現(xiàn)。
jdk.httpserver
定義特定于JDK的HTTP服務(wù)器API。
jdk.jartool
定義用于操作Java Archive(JAR)文件的工具,包括jar和 jarsigner工具。
jdk.javadoc
定義 系統(tǒng)文檔工具 及其命令行等效項(xiàng)javadoc的實(shí)現(xiàn)。
jdk.jcmd
定義用于診斷和排除JVM故障的工具,例如jcmd,jps, jstat工具。
jdk.jconsole
定義JMX圖形工具jconsole,用于監(jiān)視和管理正在運(yùn)行的應(yīng)用程序。
jdk.jdeps
定義用于分析Java庫(kù)和程序中的依賴(lài)項(xiàng)的工具,包括jdeps, javap和 jdeprscan工具。
jdk.jdi
定義Java調(diào)試接口。
jdk.jdwp.agent
提供Java調(diào)試線協(xié)議(JDWP)代理的實(shí)現(xiàn)。
jdk.jfr
定義JDK Flight Recorder的API。
jdk.jlink
定義JLINK創(chuàng)建運(yùn)行時(shí)圖像,工具JMOD用于創(chuàng)建和操作JMOD文件的工具,以及jimage用于檢查類(lèi)和資源的JDK實(shí)現(xiàn)特定的容器文件的工具。
jdk.jshell
提供用于評(píng)估Java代碼片段的jshell工具,并定義用于建模和執(zhí)行片段的JDK特定API。
jdk.jsobject
定義JavaScript對(duì)象的API。
jdk.jstatd
定義用于啟動(dòng)jstat工具的守護(hù)程序的jstatd工具,以遠(yuǎn)程監(jiān)視JVM統(tǒng)計(jì)信息。
jdk.localedata
提供美國(guó)區(qū)域設(shè)置以外的區(qū)域設(shè)置的區(qū)域設(shè)置數(shù)據(jù)。
jdk.management
為JVM定義特定于JDK的管理接口。
jdk.management.agent
定義JMX管理代理。
jdk.management.jfr
定義JDK Flight Recorder的管理界面。
jdk.naming.dns
提供DNS Java命名提供程序的實(shí)現(xiàn)。
jdk.naming.rmi
提供RMI Java命名提供程序的實(shí)現(xiàn)。
jdk.net
定義JDK特定的Networking API。
jdk.pack
定義用于將JAR文件轉(zhuǎn)換為壓縮pack200文件并將打包文件轉(zhuǎn)換為JAR文件的工具,包括 pack200和 unpack200工具。
jdk.rmic
定義用于使用遠(yuǎn)程對(duì)象的Java遠(yuǎn)程方法協(xié)議(JRMP)生成存根和骨架的rmic編譯器。
jdk.scripting.nashorn
為ECMAScript 5.1編寫(xiě)的程序提供Nashorn腳本引擎和運(yùn)行時(shí)環(huán)境的實(shí)現(xiàn)。
jdk.sctp
為SCTP定義特定于JDK的API。
jdk.security.auth
提供javax.security.auth.* 接口和各種身份驗(yàn)證模塊的實(shí)現(xiàn)。
jdk.security.jgss
定義GSS-API的JDK擴(kuò)展和SASL GSSAPI機(jī)制的實(shí)現(xiàn)。
jdk.xml.dom
定義不屬于Java SE API的W3C文檔對(duì)象模型(DOM)API的子集。
jdk.zipfs
提供Zip文件系統(tǒng)提供程序的實(shí)現(xiàn)。
JDK更新日志
日日夜夜的勞作只為你可以更快樂(lè)
嘛咪嘛咪哄~bug通通不見(jiàn)了!
華軍小編推薦:
Java SE Development Kit安裝非常簡(jiǎn)單、功能強(qiáng)大,且無(wú)安裝垃圾,特地推薦給大家,歡迎大家下載!本站還有快表軟件、AlphaEbot動(dòng)作編輯軟件、河小象編程客戶(hù)端、Easy GUI、小海龜LOGO語(yǔ)言,供您下載!
您的評(píng)論需要經(jīng)過(guò)審核才能顯示
有用
有用
有用