甲骨文公司Oracle Java Development Kit(JDK)是一款Java開發(fā)工具包,包含Java運行環(huán)境(java運行庫),Java開發(fā)套件和Java基礎類庫源代碼.Java Runtime Environment(JRE)是運行Java程序的運行環(huán)境,不管是做Java開發(fā)還是從事安卓開發(fā),都必須在系統(tǒng)安裝JRE運行環(huán)境.Java語言的貢獻力量是其他任何技術(shù)無可比擬的.
JDK20新特性:
- Scoped values是處于孵化器開發(fā)階段的 API,它支持在線程內(nèi)和線程間共享不可變數(shù)據(jù)。這些變量優(yōu)于線程局部變量,尤其是在使用大量虛擬線程時。作用域值允許在大型程序中的組件之間安全有效地共享數(shù)據(jù),而無需求助于方法參數(shù)。目標包括易用性、可理解性和性能。
- 記錄模式,在第二個預覽中,使用模式增強 Java 編程語言以解構(gòu)記錄值。可以嵌套記錄模式和類型模式,以實現(xiàn)聲明式、強大且可組合的數(shù)據(jù)導航和處理形式。目標包括擴展模式匹配以表達更復雜、可組合的數(shù)據(jù)查詢,并且不改變類型模式的語法或語義。自JDK 19中的第一個預覽版以來的主要變化包括添加對通用記錄模式的類型參數(shù)推斷的支持,支持記錄模式出現(xiàn)在增強for語句的標頭中,以及刪除對命名記錄模式的支持。
- 外部函數(shù)和內(nèi)存 API引入了一種 API,Java 程序可以通過該 API 與 Java 運行時之外的代碼和數(shù)據(jù)進行互操作。API 使 Java 程序能夠調(diào)用本機庫并處理本機數(shù)據(jù),而沒有 JNI(Java 本機接口)的脆弱性和危險性。該 API 之前在 JDK 版本 17 和 18 中孵化,并在 JDK 19 中進行了預覽。自 JDK 19 以來添加的改進包括統(tǒng)一和MemorySegment抽象MemoryAddress、增強的MemoryLayout層次結(jié)構(gòu)以及拆分MemorySession和Arena促進SegmentScope 跨維護邊界的段共享。
- 虛擬線程 是輕量級線程,可減少編寫、維護和觀察高吞吐量并發(fā)應用程序的工作量。自 JDK 19 中的第一個預覽版以來的微小變化包括少量 API 更改(在 JDK 19 中永久化)和降級ThreadGroup(也在 JDK 19 中永久化)。
- 結(jié)構(gòu)化并發(fā)具有一個 API 來簡化多線程編程,并將在不同線程中運行的多個任務視為一個工作單元。簡化了錯誤處理和取消,提高了可靠性并增強了可觀察性。自從在 JDK 19 中孵化以來,唯一的變化是它StructuredTaskScope已經(jīng)更新為支持在任務范圍內(nèi)創(chuàng)建的線程繼承范圍值。
- switch 語句和表達式的模式匹配可以簡潔、安全地表達復雜的面向數(shù)據(jù)的查詢。之前在JDK 17、JDK 18和JDK 19中進行過預覽,第四次預覽將實現(xiàn)與[url=https://openjdk.org/jeps/432]Record Patterns 的[/url]持續(xù)共同進化,允許根據(jù)經(jīng)驗和反饋進行持續(xù)改進。自第三次預覽以來,switch 模式匹配的主要變化包括簡化 switch 標簽的語法,支持推斷 switch 語句和表達式中通用模式和記錄模式的類型參數(shù)。此外,現(xiàn)在會拋出對枚舉類的詳盡切換MatchException,而不是IncompatibleClassChangeError在運行時沒有應用切換標簽時拋出。
JDK20特點:
OpenJDK Java 20 引入了作用域(scope)值作為孵化 API。Java 的作用域值允許在線程內(nèi)和線程間共享不可變數(shù)據(jù),并且優(yōu)先于線程局部變量。Java 作用域值旨在易于使用、易于理解、增強可靠性且高性能。
作用域值是一種新的語言結(jié)構(gòu),它允許聲明一個只能在當前范圍(extent)內(nèi)訪問的變量。一個范圍是一個代碼塊或一個方法調(diào)用棧,它可以包含多個線程。作用域值只能被當前范圍內(nèi)的代碼讀取,不能被其他范圍內(nèi)的代碼讀取或修改。因此,作用域值是不可變的,并且可以安全地在線程之間共享。
Java 20 還對 Vector API 進行了第四次孵化更新,以便在運行時編譯為支持的 CPU 架構(gòu)上的最佳 vector 指令。與 JDK 19 相比,Java 20 的 Vector API 沒有變化,只是修復了一些錯誤 Bug 并提高了性能。
Java / JDK 20 的第二個預覽形式是虛擬線程功能,作為高吞吐量并發(fā)應用程序的輕量級線程。JDK 19 上的虛擬線程有一些小的 API 更改以及此預覽功能的其他基本改進。
新版本還對記錄模式、switch 語句的模式匹配、外部函數(shù)和內(nèi)存 API 以及 JDK / Java 20 的結(jié)構(gòu)化并發(fā)進行了更新。
JDK和JRE的區(qū)別:
如果在學習或從事Java開發(fā)、編譯java程序,那么安裝JDK
如果僅需運行java程序,只需要Java運行庫,那么安裝JRE
Java Development Kit(簡稱JDK)= Java開發(fā)套件,Java開發(fā)工具包,面向Java語言開發(fā)者。
Java Runtime Environment(簡稱JRE)= Java運行庫,Java運行環(huán)境,面向Java程序用戶們。
JDK JAVA環(huán)境變量配置:
此電腦->右鍵->屬性->高級系統(tǒng)設置->環(huán)境變量:
1、「用戶變量」和「系統(tǒng)變量」分別新建2條變量
變量名:CLASSPATH 變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
變量名:JAVA_HOME 變量值:C:\Program Files\Java\jdk1.8.0_311(安裝目錄版本號路徑)
2、「系統(tǒng)變量」雙擊->Path->編輯環(huán)境變量 -> 分別新建3條
%JAVA_HOME%\bin
C:\Program Files\Java\jdk20.0_1\bin
C:\Program Files\Java\jre20.0_1
# 檢查JDK環(huán)境配置命令:
CMD 輸入 java -version