JDK8的全稱為Java SE Development Kit8,它是運行整個程序的核心,它內(nèi)置一堆工具和基礎(chǔ)的類庫(rt.jar)以及運行環(huán)境(Java Runtime Envirnment),自面世后就非常流行,并且發(fā)展迅速,對C++語言形成有力沖擊。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,更具備了顯著優(yōu)勢和廣闊前景。如果想要在電腦上運行Java程序就必須安裝ava SE Development Kit,才能保證程序的正常使用。軟件學(xué)堂提供jdk8下載,32為何64位系統(tǒng)的安裝包都有,并且在下文為大家附上了jdk8環(huán)境變量配置的教程。
配置教程
1、下載軟件壓縮包文件,點擊你電腦系統(tǒng)向?qū)?yīng)的程序“jdk-8u144-windows-x64.exe(64位)或者jdk-8u144-windows-i586.exe(32位)”。
2、程序會自動安裝JRE程序,選擇目錄即可
3、直到j(luò)dk8下載安裝完畢,點擊“關(guān)閉”按鈕即可,如下圖所示:
4、安裝完JDK后配置環(huán)境變量,計算機(jī)→屬性→高級系統(tǒng)設(shè)置→高級→環(huán)境變量
5、系統(tǒng)變量→新建 JAVA_HOME 變量
變量值填寫jdk的安裝目錄(本人是 C:\Program Files\Java\jdk1.8.0_144)
6、系統(tǒng)變量→尋找 Path 變量→編輯
在變量值最后輸入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原來Path的變量值末尾有沒有;號,如果沒有,先輸入;號再輸入上面的代碼)
8、檢驗是否配置成功 運行cmd 輸入 java -version (java 和 -version 之間有空格)若如圖所示 顯示版本信息 則說明安裝和配置成功。
功能介紹
JDK的最重要命令行工具:1、ja: 啟動JVM執(zhí)行class
2、jac: 編譯器
3、jar: 打包工具
4、jadoc: 文檔生成器
這些命令行必須要非常非常熟悉,對于每個參數(shù)都要很精通才行。對于這些命令的學(xué)習(xí),JDK Documentation上有詳細(xì)的文檔。
從初學(xué)者角度來看,采用JDK開發(fā)Ja程序能夠很快理解程序中各部分代碼之間的關(guān)系,有利于理解Ja面向?qū)ο蟮脑O(shè)計思想。JDK的另一個顯著特點是隨著J2EE、J2SE以及J2ME版本的升級而升級。但它的缺點也是非常明顯的就是從事大規(guī)模企業(yè)級應(yīng)用開發(fā)非常困難,不能進(jìn)行復(fù)雜的軟件開發(fā),也不利于團(tuán)體協(xié)同開發(fā)。
Java語言恐怕是穩(wěn)居網(wǎng)路應(yīng)用程序語言的首選了,這都要歸功于它高度的安全性以及跨平臺的特性,幾乎在目前所有的電腦平臺上您都可以見得到Ja的芳蹤。過去很可能會有不少人抱怨,雖然有著相當(dāng)不錯的跨平臺以及安全防護(hù)等特性,但是它的執(zhí)行速度遠(yuǎn)遠(yuǎn)不及C++等各種傳統(tǒng)慣用的程序語言。
最新特性
一、Lambda表達(dá)式1、Lambda表達(dá)式可以說是Ja 8最大的賣點,她將函數(shù)式編程引入了Ja。Lambda允許把函數(shù)作為一個方法的參數(shù),或者把代碼看成數(shù)據(jù)。
2、一個Lambda表達(dá)式可以由用逗號分隔的參數(shù)列表、–>符號與函數(shù)體三部分表示。例如:
Arrays.asList( "p", "k", "u","f", "o", "r","k").forEach( e -> System.out.println( e ) );
3、為了使現(xiàn)有函數(shù)更好的支持Lambda表達(dá)式,Ja 8引入了函數(shù)式接口的概念。函數(shù)式接口就是只有一個方法的普通接口。lang.Runnable與util.concurrent.Callable是函數(shù)式接口最典型的例子。為此,Ja 8增加了一種特殊的注解@FunctionalInterface:
二、接口的默認(rèn)方法與靜態(tài)方法1、我們可以在接口中定義默認(rèn)方法,使用default關(guān)鍵字,并提供默認(rèn)的實現(xiàn)。所有實現(xiàn)這個接口的類都會接受默認(rèn)方法的實現(xiàn),除非子類提供的自己的實現(xiàn)。例如:
2、我們還可以在接口中定義靜態(tài)方法,使用static關(guān)鍵字,也可以提供實現(xiàn)。例如:
3、接口的默認(rèn)方法和靜態(tài)方法的引入,其實可以認(rèn)為引入了C++中抽象類的理念,以后我們再也不用在每個實現(xiàn)類中都寫重復(fù)的代碼了
三、方法引用通常與Lambda表達(dá)式聯(lián)合使用,可以直接引用已有Ja類或?qū)ο蟮姆椒āR话阌兴姆N不同的方法引用:
1、構(gòu)造器引用。語法是Class::new,或者更一般的Class< T >::new,要求構(gòu)造器方法是沒有參數(shù);
2、靜態(tài)方法引用。語法是Class::static_method,要求接受一個Class類型的參數(shù);
3、特定類的任意對象方法引用。它的語法是Class::method。要求方法是沒有參數(shù)的;
4、特定對象的方法引用,它的語法是instance::method。要求方法接受一個參數(shù),與3不同的地方在于,3是在列表元素上分別調(diào)用方法,而4是在某個對象上調(diào)用方法,將列表元素作為參數(shù)傳入;
四、重復(fù)注解在Ja 5中使用注解有一個限制,即相同的注解在同一位置只能聲明一次。引入重復(fù)注解,這樣相同的注解在同一地方也可以聲明多次。重復(fù)注解機(jī)制本身需要用@Repeatable注解。Ja 8在編譯器層做了優(yōu)化,相同注解會以集合的方式保存,因此底層的原理并沒有變化。
五、擴(kuò)展注解的支持擴(kuò)展了注解的上下文,幾乎可以為任何東西添加注解,包括局部變量、泛型類、父類與接口的實現(xiàn),連方法的異常也能添加注解。
六、Optional引入Optional類來防止空指針異常,Optional類最先是由Google的Guava項目引入的。Optional類實際上是個容器:它可以保存類型T的值,或者保存null。使用Optional類我們就不用顯式進(jìn)行空指針檢查了。
七、StreamStream API是把真正的函數(shù)式編程風(fēng)格引入到其中。其實簡單來說可以把Stream理解為MapReduce,當(dāng)然Google的MapReduce的靈感也是來自函數(shù)式編程。她其實是一連串支持連續(xù)、并行聚集操作的元素。從語法上看,也很像linux的管道、或者鏈?zhǔn)骄幊?,代碼寫起來簡潔明了,非??釒洠?br />
八、Date/Time API (JSR 310)新的Date-Time API (JSR 310)受Joda-Time的影響,提供了新的time包,可以用來替代 util.Date和util.Calendar。一般會用到Clock、LocaleDate、LocalTime、LocaleDateTime、ZonedDateTime、Duration這些類,對于時間日期的改進(jìn)還是非常不錯的。
九、JS引擎NashornNashorn允許在JVM上開發(fā)運行JS應(yīng)用,允許Ja與JS相互調(diào)用。
十、Base64Base64編碼成為了Ja類庫的標(biāo)準(zhǔn)。Base64類同時還提供了對URL、MIME友好的編碼器與解碼器。
十一、除了這十大新特性之外,還有另外的一些新特性:1、更好的類型推測機(jī)制:在類型推測方面有了很大的提高,這就使代碼更整潔,不需要太多的強(qiáng)制類型轉(zhuǎn)換了。
2、編譯器優(yōu)化:將方法的參數(shù)名加入了字節(jié)碼中,這樣在運行時通過反射就能獲取到參數(shù)名,只需要在編譯時使用-parameters參數(shù)。
3、并行(parallel)數(shù)組:支持對數(shù)組進(jìn)行并行處理,主要是parallelSort()方法,它可以在多核機(jī)器上極大提高數(shù)組排序的速度。
4、并發(fā)(Concurrency):在新增Stream機(jī)制與Lambda的基礎(chǔ)之上,加入了一些新方法來支持聚集操作。
5、Nashorn引擎jjs:基于Nashorn引擎的命令行工具。它接受一些JS源代碼為參數(shù),并且執(zhí)行這些源代碼。
6、類依賴分析器jdeps:可以顯示類的包級別或類級別的依賴。
7、JVM的PermGen空間被移除:取代它的是Metaspace(JEP 122)。
更新日志
v8u144
1、此次更新包含重要安全修復(fù),公告方面包括禁用SHA-1 TLS服務(wù)器證書、JMX診斷改進(jìn)、自定義HostnameVerifier啟用SNI擴(kuò)展等等。
0條評論