jdk11是java程序員常用的工具,專為開發人員推出的軟件開發工具,包含了JAVA運行庫和開發組件。在這款11版本的JDK中更新了不少細節的地方這些都需要自己在使用中去發現,jdk11最新版可以定位腳本引擎并且在運行時調用它們以運行腳本。而且還有更多的不同jdk版本提供下載,可以按照自己的需求進行選擇,而且整個軟件非常好用,有用到這款JDPP11!
jdk安裝與環境變量配置
1.下載好安裝包之后,點擊開始安裝
2.一般直接選擇默認路徑,當然也能改,但是路徑別出現中文就行了
3.安裝完成,現在開始配置環境變量
4.我這里演示的是win7系統,點擊計算機選擇屬性
5.點擊高級系統設置,然后點擊環境變量
6.選擇系統變量的Path然后點擊編輯
7.在變量值最后輸入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意原來Path的變量值末尾有沒有;號,如果沒有先輸入;號再輸入上面的代碼)
8.選擇CLASSPATH 變量,點擊編輯,輸入 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一點)
9.如果沒有java_home新建一個,小編這里上次裝了一個jdk12所以有
10.新建 JAVA_HOME 變量 。變量值填寫你安裝jdk剛剛選擇的目錄(本人是 C:\Program Files\Java\jdk-11.0.4)
11.按一下win+r(win就是ctrl和alt中間那個按鍵),然后輸入cmd
12.輸入java -version ,如圖就是安裝配置成功了
軟件亮點
我們尋求降低創建新形式的可實現類文件常量的成本和中斷,這反過來又為語言設計者和編譯器實現者提供了更廣泛的表達性和性能選擇。我們通過創建一個新的常量池形式來實現這一點,該形式可以使用用戶提供的行為進行參數化,采用帶有靜態參數的引導方法。我們還將調整JVM和引導程序方法之間的鏈接時握手,以便使所使用的引導程序API invokedynamic適用于動態常量。根據invokedynamic我們的經驗,我們將調整兩者invokedynamic和動態常量的自舉握手,放松對參數列表處理到引導方法的某些限制。這項工作需要JDK庫的一些原型設計支持幾種常量類型的代表性樣本,特別是變量句柄(JEP 193)。為了支持這種原型設計,這項工作將與其他關于常量表達式的基本語言支持的工作相協
jdk官方版特色
敘述
如同invokedynamic啟用站點連接涉及到從JVM到根據Java的連接邏輯上漲啟用一樣,大家能將同樣技巧用于常量池條目地分析。甲CONSTANT_Dynamic穩定池內容編號以實行屏幕分辨率自舉電路方法(AMethodHandle),上述常量(的類型Class),及其一切靜態數據引導主要參數(常量的隨意編碼序列,在動態性常量間的常量池限定周期時間。)
大家加上了一個新的常量池方式,CONSTANT_Dynamic(一個新的常量標識17),它標識字節數后邊有兩種部件:bootstrap方法的引索,文件格式與a里的引索同樣CONSTANT_InvokeDynamic,aCONSTANT_NameAndType,編號預估類型。
行為上,CONSTANT_Dynamic根據對下列主要參數實行其引導方法來分析常量:1。當地Lookup目標,2。String表示常量的名字部件,3。Class表示期待的常量類型,及其4.一切剩下的引導主要參數。此外invokedynamic,好幾個進程能夠市場競爭處理,但將選擇一個與眾不同的大贏家,并丟掉其他任何市場競爭回答。而非CallSite像invokedynamic命令所規定的那般回到一個對象,bootstrap方法將回到一個值,該值將立即轉換成所需要的類型。
此外invokedynamic,除開類型以外,name部件是一個額外安全通道,用以將關系式信息的傳遞給bootstrap方法。預估如同invokedynamic命令搜索名字元件的主要用途(比如,方法名字或一些獨特ioctl)一樣,動態性常量都將尋找名字的用處(比如,enum常量的名字或符號常量的拼讀))。把CONSTANT_NameAndType在兩個地方促使一個更常常設計。在效果上,CONSTANT_Methodref和CONSTANT_Fieldref常量用于指的是類名字中的一員,而相似的CONSTANT_InvokeDynamic和CONSTANT_Dynamic常量用以指命名實體和用戶程序編寫的引導程序流程。
具備2個invokedynamic和的常量的類型部件CONSTANT_Dynamic明確啟用站點合理類型或常量(各自)。引導方法不容易奉獻或管束此類型信息內容,因而引導方法很有可能(一般是)弱類型,而字節碼自身始終都是強類型的。
為了能放開對引導說明符長度限定,將調節界定引導方法啟用的言語(具備徹底向后兼容性),以容許自變量arity(ACC_VARARGS)引導方法把所有剩下的靜態數據主要參數吸收其跟隨主要參數中,即便存有是2^16-1。(類格式文件早已容許那樣,可是沒辦法載入較長的引導主要參數列表。)為保持一致性,假如總體目標方法具備可變性的arity,那樣invokeWithArguments方法MethodHandle都將以這樣的方式拓展。這種引導方法啟用還可以在弱類型的方法來特定invokeWithArguments和invoke,如同今日它來特定invoke一個人。
操縱引導連接不正確已經被證明來源于客戶的不正確和RFE的相同由來,而且invokedynamic伴隨著引導方法變得越來越繁雜(因為它應具有動態性常量),發展趨勢可能加快。假如我們可以找到一種方法來保證對引導方法異常更有效控制,并可以簡單的進行,我們將要考慮到把它作為此JEP的一部分給予。不然,這將納入未來增強功能列表。
動因
Javavm虛擬機規范化的4.4節敘述了常量池的文件格式。加上一個新的常量池方式(比如Java7的大力支持MethodHandle和MethodType引進)是一項重大工作中,并在生態系統中傳出漪漣,因為他會影響到分析或表述類文件信息全部編碼。從而為建立一個新的穩定池方式帶來了非常高的規范。
應用invokedynamic,將常量池中儲存繁雜數據庫的值乘積,由于invokedynamic引導的程序靜態數據主要參數列表是一系列常量。invokedynamic合同的設計師(比如LambdaMetafactoryJava8中加入的)一般難以達到依據目前常量集編號的行為必須-這相反還需要在引導程序流程自身方面具有額外非常容易出錯認證和獲取邏輯性。更加豐富,更加靈活,更高一些類型的常量規避了invokedynamic協議書研發的磨擦,這相反又推動了繁雜邏輯性從運行中到連接時移動,提升了程序性能并優化了編譯程序邏輯性。