jdk12目前已經(jīng)全新發(fā)布了,作為當(dāng)前最熱門的計(jì)算機(jī)語言之一,如今已被廣泛應(yīng)用到科技行業(yè)的各個(gè)領(lǐng)域。在這個(gè)新版本中新填的Switch表達(dá)式不僅可以作為語句也可以作為表達(dá)式。無論作為語句或者作為表達(dá)式,switch都可以使用傳統(tǒng)/簡化的作用域和控制流行為。這將有助于簡化代碼,并為在switch中使用模式匹配鋪平道路。改進(jìn)過后的G1歸將不再使用內(nèi)存,此功能的主要目標(biāo)是改進(jìn)G1垃圾收集器,以便在不活動(dòng)時(shí)將Java堆內(nèi)存歸還給操作系統(tǒng)。為實(shí)現(xiàn)此目標(biāo),G1將在低應(yīng)用程序活動(dòng)期間定期生成或持續(xù)循環(huán)檢查完整的Java堆使用情況。這將立即歸還未使用的部分Java堆內(nèi)存給操作系統(tǒng)。用戶可以選擇執(zhí)行FULL GC以最大化返回的內(nèi)存量,它還有著更多新功能帶你來體驗(yàn)。在這次中小編給大家?guī)淼氖?strong>jdk12 64位官方版下載,此版本小版本好為12.0.1是目前的最新版本,在下文中有著小編精心編寫的安裝教程與非常詳細(xì)的環(huán)境變量配置教程,可讓你在第一時(shí)間上體驗(yàn)大這款全新的jdk12。
安裝教程
1、在本站下載好jdk12 64位官方版文件包,解壓出來雙擊“jdk-12.0.1_windows-x64_bin.exe”主程序運(yùn)行開始安裝,在安裝向?qū)Ы缑嬷苯狱c(diǎn)擊“下一步”。
2、安裝路徑建議不要更改,默認(rèn)直接點(diǎn)擊“下一步”即可。
3、程序正在安裝,需要些時(shí)間請(qǐng)小伙伴們耐心等待哦。
4、好了安裝完成,點(diǎn)擊關(guān)閉下面我們開始環(huán)境變量配置。
環(huán)境變量配置教程
1、鼠標(biāo)右鍵計(jì)算機(jī)選擇屬性。
2、然后點(diǎn)擊高級(jí)系統(tǒng)設(shè)置環(huán)境變量。
3、在系統(tǒng)變量中新建變量
變量名:JAVA_HOME變量值:C:\Program Files\Java\jdk-12.0.1 (ps:如果你沒有改變默認(rèn)路徑復(fù)制就可以,如果修改過請(qǐng)選擇jdk的安裝目錄),填寫好后點(diǎn)擊“確定”。
JAVA_HOME是用來表示jdk的安裝目錄。
配置java_home的原因是:
(1)方便引用。
(2)其他軟件會(huì)引用約定好的JAVA_HOME變量。比如tomcat就需要引用JAVA_HOME。
4、在系統(tǒng)變量列表中找到“Path”,點(diǎn)擊“編輯”,在變量值最后輸入
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原來Path的變量值末尾有沒有;號(hào),如果沒有,先輸入;號(hào)再輸入上面的代碼),填寫好后點(diǎn)擊“確定”。5、接著新建
CLASSPATH 變量
變量值填寫
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一點(diǎn))系統(tǒng)變量配置完畢
6、檢驗(yàn)是否配置成功,電腦重啟后,win+R 輸入cmd 進(jìn)入命令提示符界面
java -version(java 和 -version 之間有空格),若如圖所示 顯示版本信息則說明安裝和配置成功。
輸入java查看命令
輸入javac查看命令
軟件分類
java.lang: 這個(gè)是系統(tǒng)的基礎(chǔ)類,比如String等都是這里面的,這個(gè)包是唯一一個(gè)可以不用引入(import)就可以使用的包。
java.io: 這里面是所有輸入輸出有關(guān)的類,比如文件操作等。
java.nio:為了完善io包中的功能,提高io包中性能而寫的一個(gè)新包 ,例如NIO非堵塞應(yīng)用。
java.net: 這里面是與網(wǎng)絡(luò)有關(guān)的類,比如URL,URLConnection等。
java.util: 這個(gè)是系統(tǒng)輔助類,特別是集合類Collection,List,Map等。
java.sql: 這個(gè)是數(shù)據(jù)庫操作的類,Connection, Statement,ResultSet等。
javax.servlet:這個(gè)是JSP,Servlet等使用到的類。
包含的基本組件
javac – 編譯器,將源程序轉(zhuǎn)成字節(jié)碼
jar – 打包工具,將相關(guān)的類文件打包成一個(gè)文件
javadoc – 文檔生成器,從源碼注釋中提取文檔
jdb – debugger,查錯(cuò)工具
java – 運(yùn)行編譯后的java程序(.class后綴的)
appletviewer:小程序
瀏覽器,一種執(zhí)行HTML文件上的Java小程序的Java瀏覽器。
Javah:產(chǎn)生可以調(diào)用Java過程的C過程,或建立能被Java程序調(diào)用的C過程的頭文件。
Javap:Java反匯編器,顯示編譯類文件中的可訪問功能和數(shù)據(jù),同時(shí)顯示字節(jié)代碼含義。
Jconsole: Java進(jìn)行系統(tǒng)調(diào)試和監(jiān)控的工具
jdk結(jié)構(gòu)圖
常用基本工具
1、Javac: Java源程序編譯器,將Java源代碼轉(zhuǎn)換成字節(jié)碼。
2、Java: Java解釋器,直接從字節(jié)碼文件,又稱為類文件.執(zhí)行Java應(yīng)用程序的字節(jié)代碼。
3、appletviewer.exe Java applet瀏覽器。appletviewer命令可在脫離萬維網(wǎng)瀏覽器環(huán)境的情況下運(yùn)行applet。
4、jar: java應(yīng)用程序打包工具,可將多個(gè)類文件合并為單個(gè)JAR歸檔文件。
5、Javadoc: Java API文檔生成器從Java源程序代碼注釋中提取文檔,生成API文檔HTML頁。
6、jdb: Java調(diào)試器(debugger),可以逐行執(zhí)行程序.設(shè)置斷點(diǎn)和檢查變Md。
7、jps: 查看Java虛擬機(jī)進(jìn)程列表。
新特性
1、Switch 表達(dá)式
使用Java 12,switch不僅可以作為語句也可以作為表達(dá)式。 無論作為語句或者作為表達(dá)式,switch都可以使用傳統(tǒng)/簡化的作用域和控制流行為。 這將有助于簡化代碼,并為在switch中使用模式匹配鋪平道路。
Java開發(fā)人員正在增強(qiáng)Java編程語言,以使用模式匹配來解決當(dāng)前switch語句的幾個(gè)問題。 這包括:switch塊的默認(rèn)控制流行為,switch塊默認(rèn)作用域(被視為單個(gè)作用域的塊)和switch僅作為語句。
在Java 11中,switch語句追隨C和C++,默認(rèn)情況下使用fall-through語義。 雖然傳統(tǒng)的控制流程在編寫低級(jí)代碼時(shí)很有用,但隨著switch在更高級(jí)別的環(huán)境中采用,易出錯(cuò)會(huì)蓋過其靈活性。
2、默認(rèn)CDS歸檔
通過在64位平臺(tái)上的默認(rèn)類列表的幫助下生成CDS歸檔來改進(jìn)JDK構(gòu)建過程,從而有效地消除了運(yùn)行java -Xshare:dump。 此功能的目標(biāo)包括:1。)改進(jìn)開箱即用的啟動(dòng)時(shí)間,以及2.)擺脫使用-Xshare:dump。
3、Shenandoah GC
Shenandoah是一種垃圾收集(GC)算法,旨在保證低延遲(10 - 500 ms的下限)。 它通過在運(yùn)行Java工作線程的同時(shí)執(zhí)行GC操作減少GC暫停時(shí)間。 使用Shenandoah,暫停時(shí)間不依賴于堆的大小。 這意味著無論堆的大小如何,暫停時(shí)間都是差不多的。
這是一個(gè)實(shí)驗(yàn)性功能,不包含在默認(rèn)(Oracle)的OpenJDK版本中。
4、JMH 基準(zhǔn)測試
jdk12為JDK源代碼添加了一套微基準(zhǔn)測試(大約100個(gè)),簡化了現(xiàn)有微基準(zhǔn)測試的運(yùn)行和新基準(zhǔn)測試的創(chuàng)建過程。 它基于Java Microbenchmark Harness(JMH)并支持JMH更新。
此功能使開發(fā)人員可以輕松運(yùn)行當(dāng)前的微基準(zhǔn)測試并為JDK源代碼添加新的微基準(zhǔn)測試。 可以基于Java Microbenchmark Harness(JMH)輕松測試JDK性能。 它將支持JMH更新,并在套件中包含一組(約100個(gè))基準(zhǔn)測試。
5、JVM 常量 API
JEP 334引入了一個(gè)API,用于建模關(guān)鍵類文件和運(yùn)行時(shí)artifacts,例如常量池。 此API將包括ClassDesc,MethodTypeDesc,MethodHandleDesc和DynamicConstantDesc等類。此 API 對(duì)于操作類和方法的工具很有幫助。
6、G1的可中斷 mixed GC
此功能通過將Mixed GC集拆分為強(qiáng)制部分和可選部分,使G1垃圾收集器更有效地中止垃圾收集過程。通過允許垃圾收集過程優(yōu)先處理強(qiáng)制集,g1可以更多滿足滿足暫停時(shí)間目標(biāo)。
G1是一個(gè)垃圾收集器,設(shè)計(jì)用于具有大量內(nèi)存的多處理器機(jī)器。由于它提高了性能效率,g1垃圾收集器最終將取代cms垃圾收集器。
G1垃圾收集器的主要目標(biāo)之一是滿足用戶設(shè)置的暫停時(shí)間。G1采用一個(gè)分析引擎來選擇在收集期間要處理的工作量。此選擇過程的結(jié)果是一組稱為GC集的區(qū)域。一旦GC集建立并且GC已經(jīng)開始,那么G1就無法停止。
如果G1發(fā)現(xiàn)GC集選擇選擇了錯(cuò)誤的區(qū)域,它會(huì)將GC區(qū)域的拆分為兩部分(強(qiáng)制部分和可選部分)來切換到處理Mix GC的增量模式。如果未達(dá)到暫停時(shí)間目標(biāo),則停止對(duì)可選部分的垃圾收集。
7、G1歸還不使用的內(nèi)存
此功能的主要目標(biāo)是改進(jìn)G1垃圾收集器,以便在不活動(dòng)時(shí)將Java堆內(nèi)存歸還給操作系統(tǒng)。 為實(shí)現(xiàn)此目標(biāo),G1將在低應(yīng)用程序活動(dòng)期間定期生成或持續(xù)循環(huán)檢查完整的Java堆使用情況。
這將立即歸還未使用的部分Java堆內(nèi)存給操作系統(tǒng)。 用戶可以選擇執(zhí)行FULL GC以最大化返回的內(nèi)存量。
8、移除多余ARM64實(shí)現(xiàn)
jdk12將只有一個(gè)ARM 64位實(shí)現(xiàn)(aarch64)。 目標(biāo)是刪除所有與arm64實(shí)現(xiàn)相關(guān)的代碼,同時(shí)保留32位ARM端口和64位aarch64實(shí)現(xiàn)。
這將把重點(diǎn)轉(zhuǎn)移到單個(gè)64位ARM實(shí)現(xiàn),并消除維護(hù)兩個(gè)實(shí)現(xiàn)所需的重復(fù)工作。 當(dāng)前的JDK 11實(shí)現(xiàn)中有兩個(gè)64位ARM實(shí)現(xiàn)。
0條評(píng)論