Java SE Development
Kit提供Java開(kāi)發(fā)環(huán)境,如果你需要使用Java開(kāi)發(fā)新的應用程序就可以下載這款軟件使用,軟件提供了很多開(kāi)發(fā)工具,提供了運行環(huán)境,提供了兼容庫,提供API文檔,提供jdk工具,提供JShell,提供Javadoc,提供核心庫資源,功能還是非常多的,讓用戶(hù)可以在開(kāi)發(fā)新的應用程序時(shí)獲得更多幫助,無(wú)論是開(kāi)發(fā)新的軟件還是測試應用程序運行狀態(tài)都是非常適合的,如果你需要JDK就可以下載Java
SE Development Kit21版本使用。
1. 語(yǔ)言特點(diǎn)
記錄模式
使用記錄模式增強 Java 編程語(yǔ)言以解構記錄值??梢郧短子涗浤J胶皖?lèi)型模式,以實(shí)現功能強大、聲明性和可組合形式的數據導航和處理。
開(kāi)關(guān)模式匹配
通過(guò)表達式和語(yǔ)句的模式匹配來(lái)增強 Java 編程語(yǔ)言。擴展模式匹配允許針對多個(gè)模式測試表達式,每個(gè)模式都有一個(gè)特定的操作,以便可以簡(jiǎn)潔安全地表達復雜的面向數據的查詢(xún)。
1.1 語(yǔ)言功能預覽
字符串模板(預覽版)
使用字符串模板增強 Java 編程語(yǔ)言。字符串模板通過(guò)將文字文本與嵌入式表達式和模板處理器耦合來(lái)補充 Java 現有的字符串文字和文本塊,以產(chǎn)生專(zhuān)門(mén)的結果。這是一個(gè)預覽語(yǔ)言功能和 API。
未命名模式和變量(預覽版)
使用未命名的模式(與記錄組件匹配而不說(shuō)明組件的名稱(chēng)或類(lèi)型)和未命名變量(可以初始化但不使用)來(lái)增強 Java 語(yǔ)言。兩者都由下劃線(xiàn)字符 表示。這是一項預覽語(yǔ)言功能。_
未命名類(lèi)和實(shí)例主方法(預覽版)
改進(jìn) Java 語(yǔ)言,以便學(xué)生可以編寫(xiě)他們的第一個(gè)程序,而無(wú)需了解為大型程序設計的語(yǔ)言功能。學(xué)生遠非使用單獨的Java方言,而是可以為單類(lèi)程序編寫(xiě)簡(jiǎn)化的聲明,然后隨著(zhù)技能的增長(cháng)無(wú)縫擴展他們的程序以使用更高級的功能。這是一項預覽語(yǔ)言功能。
2. 庫改進(jìn)
虛擬線(xiàn)程
將虛擬線(xiàn)程引入 Java 平臺。虛擬線(xiàn)程是輕量級線(xiàn)程,可顯著(zhù)減少編寫(xiě)、維護和觀(guān)察高吞吐量并發(fā)應用程序的工作量。
排序集合
引入新接口來(lái)表示具有定義的遭遇順序的集合。每個(gè)這樣的集合都有一個(gè)明確定義的第一個(gè)元素、第二個(gè)元素,依此類(lèi)推,直到最后一個(gè)元素。它還提供統一的 API,用于訪(fǎng)問(wèn)其第一個(gè)和最后一個(gè)元素,以及以相反的順序處理其元素。
“生活只能倒著(zhù)理解;但它必須向前生活。
可執行程序
?。ㄔ赽in/子目錄中)Java運行時(shí)環(huán)境(JRE)的實(shí)現。JRE包括Java虛擬機(JVM?)、類(lèi)庫和其他支持執行用Java編程語(yǔ)言編寫(xiě)的程序的文件。該目錄還包括一些工具和實(shí)用程序,它們將幫助您開(kāi)發(fā)、執行、調試和記錄用Java編程語(yǔ)言編寫(xiě)的程序。有關(guān)更多信息,請參閱JDK 21工具規范https://docs.oracle.com/en/java/javase/21/docs/specs/man/index.html
配置文件
?。ㄔ赾onf/子目錄中)包含用戶(hù)可配置選項的文件??梢跃庉嫶四夸浿械奈募愿腏DK的訪(fǎng)問(wèn)權限、配置安全算法,并設置可能用于限制JDK加密強度的Java加密擴展策略文件。
C頭文件
?。ㄔ趇nclude/子目錄中)C語(yǔ)言頭文件,支持使用Java native Interface和Java Virtual Machine(JVM)Debugger Interface進(jìn)行本機代碼編程。
編譯的Java模塊
?。ㄔ趈mods/子目錄中)jlink用于創(chuàng )建自定義運行時(shí)的已編譯模塊。
版權和許可證文件
?。ㄔ趌egal/子目錄中)每個(gè)模塊的許可證和版權文件。包括作為.md(markdown)文件的第三方通知。
其他庫
?。ㄔ趌ib/子目錄中)JDK所需的其他類(lèi)庫和支持文件。這些文件不用于外部使用。
1、將Java SE Development Kit直接安裝到電腦,點(diǎn)擊下一步
2、提示軟件的安裝位置設置,默認安裝到C盤(pán)
3、提示安裝過(guò)程,等等Java SE Development Kit安裝結束吧
4、Java SE Development Kit成功部署到電腦,可以查看后續步驟
新功能
核心libs/java.net
TCP_KEEPxxxx擴展套接字選項現在在Windows平臺上受支持(JDK-8308593)
java.net。ExtendedSocketOptions TCP_KEEPIDLE和TCP_KEPEINTERVAL在從Windows 10版本1709及以后的Windows平臺上受支持。從Windows 10版本1703及更高版本開(kāi)始支持TCP_KEEPCOUNT。
已知問(wèn)題
熱點(diǎn)/編譯器
由于有限范圍檢查消除而導致的潛在性能回歸(JDK-8314468(非公開(kāi)))
當C1編譯器是VM唯一可用的編譯器時(shí),它會(huì )應用循環(huán)預測來(lái)從循環(huán)體中刪除數組訪(fǎng)問(wèn)范圍檢查。由于存在缺陷,此優(yōu)化被禁用,可能導致性能回歸。
這只會(huì )影響使用非默認命令行標志-XX:+NeverActAsServerClassMachine或-XX:TieredStopAtLevel=[1,2,3]運行的客戶(hù)端虛擬機。
已修復的問(wèn)題
熱點(diǎn)/編譯器
ZGC:重新引入對非默認ObjectAlignmentInBytes的支持(JDK-8315082)
JDK 21問(wèn)題已經(jīng)解決,當使用-XX:+UseZGC和非默認值-XX:ObjectAlignmentInBytes運行JVM時(shí),該問(wèn)題可能會(huì )導致JVM崩潰或錯誤執行,并且可以再次使用JVM選項的這種組合。
修復
PassFailJFrame指令的HTML格式
處理WideCharToMultiByte返回值
BasicStroke.createStrokedShape斜接限制在小型形狀上失敗
默認目標的ColorConvertOp.filter太慢
JPEG解碼中的附加負值檢查
將HarfBuzz更新為8.2.2
將Libpng更新至1.6.40
使用JFileChooser或COM庫時(shí),屏幕鎖定后的TargetDataLine無(wú)效
將屏幕捕獲功能添加到PassFailJFrame
復選框和單選按鈕在高DPI環(huán)境下的Windows上存在渲染問(wèn)題
libCreationTimeHelper.so在JDK 21中鏈接失敗
來(lái)自虛擬線(xiàn)程的線(xiàn)程中斷不必要地重置中斷狀態(tài)
使用字節順序和地址大小擴展內部體系結構枚舉
如果在JDK-8302163之后禁用了CompactStrings,RegionMatches1Tests將失敗
在8315026之后調整os_getChildren的描述注釋
改進(jìn)IllegalaccessException消息以包括異常的原因
如果加載程序為null并且接口在類(lèi)加載程序中不可見(jiàn),則Proxy.newProxylinstance拋出NPE
流:handleReset鎖兩次
?。╞f)DirectByteBuffer中的并發(fā)問(wèn)題。經(jīng)銷(xiāo)商
?。╠c)DatagramChannel的套接字適配器在接收阻塞時(shí)不會(huì )釋放承載線(xiàn)程
?。╢s)為L(cháng)inux添加對BasicFileAttributes.creationTime()的支持
改進(jìn)sun.nio.ch.Net本機方法拋出的異常消息(win)
JDK-8246677在SynchronousQueue中導致16x性能回歸
簽名jar觸發(fā)Logger finder遞歸和StackOverflowError
通過(guò)關(guān)于allow選項的信息增強agentlib:jdwp幫助輸出
C1:ShortLoopOptimizer可能會(huì )在指令輸入之前提升指令
CodeBlob的更好診斷標頭
LibraryCallKit中的控件不正確:inline_anative_notify_jvmti_funcs
assert(強制轉換!=nullptr)失?。罕仨毺砑恿艘粋€(gè)強制轉換來(lái)固定節點(diǎn)
將快速鎖定實(shí)現從.ad文件中移出
[BACKUT]8308682:增強AES性能
[REDO]增強AES性能
VectorMaskGen在x86_64上破壞rflags
C2編譯失敗,出現“Exceeded _node_regs array”
自JDK 17以來(lái),C2編譯時(shí)間大幅增加(高達約30倍)
C2 SuperWord:錯誤的結果,如果不可比較,則不應在存儲前移動(dòng)負載
C2:“控制輸入必須主導電流控制”斷言失敗
C2:在斷言后添加救助在build_loop_late中檢測到壞圖
C2:大字節陣列克隆觸發(fā)linux-x86上的“失?。焊袷藉e誤的控制流”斷言失敗
C2編譯失敗,出現“錯誤的AD文件”
C2編譯仍然失敗,原因是“AD文件不正確”
網(wǎng)友評論