解析JDK14中的java tools簡(jiǎn)介
1.1 JDK 14詳細(xì)概述
JDK 8 已經(jīng)在 2014年 3月 18日正式可用,JDK 8作為長(zhǎng)期支持(Long-Term-Support)版本,距離現(xiàn)在已經(jīng) 5年多時(shí)間過(guò)去了。5年時(shí)間里很多企業(yè)也都換上了 JDK 8,2018年09月25日作為下一個(gè)LTS的JDK版本:JDK 11也應(yīng)運(yùn)而生,Oracle表示會(huì)對(duì)JDK 11提供大力支持、長(zhǎng)期支持。之后陸續(xù)發(fā)布了JDK 12 和JDK 13,JDK 14在 2020年 3月17日正式發(fā)布。
1.2 JDK 14總體概覽
Oracle在2020年3月17日宣布Java 14(Oracle JDK 14)的全面上市。Java 14通過(guò)每六個(gè)月發(fā)布一次新功能,為企業(yè)和開發(fā)人員社區(qū)提供新的增強(qiáng)功能,繼續(xù)了Oracle加快創(chuàng)新的承諾。最新的Java開發(fā)工具包(JDK)提供了新功能,其中包括兩項(xiàng)備受期待的新預(yù)覽功能–實(shí)例匹配的模式匹配(JEP 305)和記錄(JEP 359),以及文本塊的第二個(gè)預(yù)覽(JEP 368)。此外,最新的Java版本增加了對(duì)switch表達(dá)式的Java語(yǔ)言支持,公開了用于持續(xù)監(jiān)控JDK Flight Recorder數(shù)據(jù)的新API,將低延遲Z垃圾收集器的可用性擴(kuò)展到了macOS和Windows,并在孵化器模塊中添加了包裝完備的Java應(yīng)用程序和新的外部?jī)?nèi)存訪問(wèn)API,以安全,高效地訪問(wèn)Java堆外部的內(nèi)存。
1.3 JDK 14官方計(jì)劃
我們可以在openjdk官網(wǎng)中觀察到JDK 14發(fā)布的詳細(xì)官方計(jì)劃和具體的新特性詳情,地址如下:
https://openjdk.java.net/projects/jdk/14/
下面看下JDK14 java tools簡(jiǎn)介
故事發(fā)生了
在還沒(méi)有IDE的時(shí)代,高手們還是通過(guò)記事本來(lái)編程。那時(shí)候能夠?qū)懗绦虻亩际桥H?。能把程序?qū)懙煤玫母桥H酥械呐H恕?/p>
禿頭大叔的程序員形象就是在那個(gè)時(shí)候建立起來(lái)的。
還記得十幾年前的那一個(gè)春天,微風(fēng)不動(dòng),太陽(yáng)都羞紅了臉。因?yàn)槟菚r(shí)候的我還在一個(gè)javac,一個(gè)java的編譯,運(yùn)行著java程序。
雖然效率低下,但是看著我跑起來(lái)的一個(gè)又一個(gè)hello world,心里充滿了歡喜。
驚喜過(guò)后便是失落,java實(shí)在太難用了太復(fù)雜了,我還是回去寫C語(yǔ)言吧。
直到有一天,有人向我推薦了eclipse,它就像是一道閃電照亮了我前進(jìn)的方向。從此什么javac,java都見(jiàn)鬼去吧,我只要eclipse。
很多年之后,我從eclipse轉(zhuǎn)向了IDEA,開發(fā)工具越來(lái)越趁手,然后我已經(jīng)差不多快忘記了java原來(lái)還提供了一系列的java tools供我們使用。
都說(shuō)要勿忘初心,于是借著JDK14的發(fā)布,我又一次回顧了java tools提供的工具,居然有了驚喜的發(fā)現(xiàn)。
java tools簡(jiǎn)介
JDK14中提供了多達(dá)31中工具,慚愧的是,第一次看到它們我只認(rèn)識(shí)其中的部分。士知恥而后勇,于是我?jiàn)^發(fā)圖強(qiáng),終于在今天將它們?nèi)颊J(rèn)識(shí)了。
31一個(gè)工具,這里我先簡(jiǎn)單介紹一下,后續(xù)再針對(duì)復(fù)雜的,特別有用的工具做一個(gè)專門的說(shuō)明。
以下排名僅按字母順序,不代表任何個(gè)人觀點(diǎn)
一個(gè)java的靜態(tài)編譯器,為編譯好的java方法生成native代碼。
jar包大家都很熟悉了,使用jar命令可以用來(lái)打包和解壓jar文件。
jarsigner
jar包打完了,使用jarsigner來(lái)對(duì)jar包做簽名和認(rèn)證。
使用java可以運(yùn)行java程序。
javac用來(lái)編譯java文件,將文本文件編譯成二進(jìn)制的class文件。
javadoc
javadoc可以將代碼中寫的注釋文檔生成HTML頁(yè)面供大家參考。如果你有看過(guò)JDK的源代碼的話,可以看到源代碼里面寫了很多注釋。大家可以學(xué)習(xí)一下。因?yàn)樽⑨尯苤匾?/p>
java自帶的反編譯工具,可以將二進(jìn)制的class文件反編譯成為人類可讀的代碼。
這個(gè)反編譯工具可能不夠IDE自帶的反編譯工具強(qiáng)大。
這里的d代表的是diagnostic,通過(guò)這個(gè)命令可以對(duì)正在運(yùn)行的JVM進(jìn)行調(diào)試。
這是一個(gè)非常有用的調(diào)試工具,我們?cè)诤竺娴奈恼轮袝?huì)詳細(xì)講解。
jconsole
jconsole是一個(gè)GUI客戶端,可以對(duì)現(xiàn)有的java程序進(jìn)行管理。
他們的連接協(xié)議是JMX。不知道為什么國(guó)內(nèi)的公司好像很少用到JMX。um…這個(gè)問(wèn)題等我有時(shí)間了研究一下。
Java Debugger (JDB)是一個(gè)命令行的debug工具,提供了一系列的debug程序的功能。
jdeprscan
jdeprscan是一個(gè)分析工具,用來(lái)掃描jar或者class文件中的deprecated API。
jdeps是一個(gè)java class依賴的分析工具。
jfr是Java Flight Recorder的縮寫,jfr是java應(yīng)用程序的分析工具。它可以收集JVM在運(yùn)行期間所產(chǎn)生的一系列事件,并生成文件和分析。
后面我們會(huì)用一篇文章詳細(xì)講解JFR。
jhsdb是一個(gè)分析工具,可以分析正在運(yùn)行的java程序中,也可以分析coredump。
jinfo為特定的java進(jìn)程生成運(yùn)行時(shí)的java配置信息。
jjs用來(lái)運(yùn)行Nashorn engine。
從JDK9之后,java已經(jīng)模塊化了。jlink可以將模塊和他們的依賴組織起來(lái),生成一個(gè)自定義的運(yùn)行時(shí)環(huán)境。
jmap可以打印出某個(gè)java進(jìn)程的堆信息。我們會(huì)在后面的文章中詳細(xì)講解。
jmod用來(lái)創(chuàng)建和解析JMOD文件。
jpackage
jpackage可以用來(lái)打包自運(yùn)行的java程序。
列出機(jī)子上面的java進(jìn)程。
jrunscript
啟動(dòng)一個(gè)命令行shell,這個(gè)shell支持交互和批處理模式。
一個(gè)可互動(dòng)的java shell環(huán)境。
打印java stack信息,主要用在debug中。后面我們會(huì)詳細(xì)講解。
用于監(jiān)控JVM的統(tǒng)計(jì)信息。
jstatd是一個(gè)RMI服務(wù)程序,用來(lái)遠(yuǎn)程監(jiān)控JVM。
keytool
生成和管理密鑰,證書的工具。
用來(lái)生成遠(yuǎn)程方法調(diào)用的stub和skeleton類。
啟動(dòng)一個(gè)守護(hù)進(jìn)程,允許在JVM中注冊(cè)和實(shí)例化對(duì)象。
rmiregistry
創(chuàng)建一個(gè)RMI對(duì)象的注冊(cè)器。
serialver
為一個(gè)或多個(gè)class生成serialVersionUID。
以上的31個(gè)工具就是JDK14提供的。后面我們會(huì)挑其中幾個(gè)對(duì)我們的程序調(diào)試和定位問(wèn)題非常有用的幾個(gè)工具來(lái)講解。
到此這篇關(guān)于解析JDK14中的java tools簡(jiǎn)介的文章就介紹到這了,更多相關(guān)JDK14 java tools簡(jiǎn)介內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java使用POI讀取properties文件并寫到Excel的方法
這篇文章主要介紹了java使用POI讀取properties文件并寫到Excel的方法,涉及java操作properties文件及Excel文件的相關(guān)技巧,需要的朋友可以參考下2015-06-06Java 8實(shí)現(xiàn)任意參數(shù)的單鏈表
這篇文章主要為大家詳細(xì)介紹了Java 8實(shí)現(xiàn)任意參數(shù)的單鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10Spring自動(dòng)掃描無(wú)法掃描jar包中bean的解決方法
在日常開發(fā)中往往會(huì)對(duì)公共的模塊打包發(fā)布,然后調(diào)用公共包的內(nèi)容。然而,最近對(duì)公司的公共模塊進(jìn)行整理發(fā)布后。spring卻無(wú)法掃描到相應(yīng)的bean,下面這篇文章主要給大家介紹了關(guān)于Spring自動(dòng)掃描時(shí)無(wú)法掃描jar包中bean的解決方法,需要的朋友可以參考下。2017-06-06MybatisPlus的MetaObjectHandler與@TableLogic使用
這篇文章主要介紹了MybatisPlus的MetaObjectHandler與@TableLogic使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04Java開發(fā)人員最常犯的5個(gè)錯(cuò)誤總結(jié)
作為一名java開發(fā)程序員,不知道大家有沒(méi)有遇到過(guò)一些匪夷所思的bug。這些錯(cuò)誤通常需要您幾個(gè)小時(shí)才能解決。今天,小編總結(jié)一些常見(jiàn)的編碼錯(cuò)誤,然后給出解決方案。希望大家在日常編碼中能夠避免這樣的問(wèn)題2022-12-12