軟件介紹
JDK1.8也被稱之為Java8這是一款應(yīng)用于Java編程語言的必備運行環(huán)境,軟件包含開放所必備的所有基礎(chǔ)庫以及對編輯運行的支持環(huán)境,而1.8是目前相對比較穩(wěn)定的版本,不建議下載最新的jdk版本,因為最新的jdk不穩(wěn)定,有需要的朋友,趕緊來試試看吧。
JDK1.8最新版在安裝完畢后也是需要配置環(huán)境變量的,用戶們可以在下載完忘頁面下面翻找,會有相關(guān)教程幫助你配置環(huán)境內(nèi)容,快來看看吧。
注意事項
1.8后的jdk會自動添加環(huán)境變量,所以我們無需配置環(huán)境變量
可以看到path變量已經(jīng)自動配置了值
jdk1.8版本安裝時會自動配置一個環(huán)境變量并置頂
驗證是否配置成功
JDK 1.8包含組件
javac – 編譯器,將源程序轉(zhuǎn)成字節(jié)碼
jar – 打包工具,將相關(guān)的類文件打包成一個文件
javadoc – 文檔生成器,從源碼注釋中提取文檔
jdb – debugger,查錯工具
java – 運行編譯后的java程序(.class后綴的)
appletviewer:小程序瀏覽器,一種執(zhí)行HTML文件上的Java小程序的Java瀏覽器。
Javah:產(chǎn)生可以調(diào)用Java過程的C過程,或建立能被Java程序調(diào)用的C過程的頭文件。
Javap:Java反匯編器,顯示編譯類文件中的可訪問功能和數(shù)據(jù),同時顯示字節(jié)代碼含義。
Jconsole: Java進行系統(tǒng)調(diào)試和監(jiān)控的工具
軟件特色
JDK(Java Development Kit)是Java語言軟件開發(fā)工具包,是Java開發(fā)的核心。
JDK包含了JRE(Java Runtime Environment,Java運行環(huán)境),而JRE又包含了JVM(Java Virtual Machine,Java虛擬機)和Java核心類庫。JDK不僅是Java程序運行的基礎(chǔ),也是各種IDE(集成開發(fā)環(huán)境)開發(fā)環(huán)境的基礎(chǔ),它提供了編譯和運行Java程序的環(huán)境。
JDK包含了Java編譯器(用于將Java源代碼轉(zhuǎn)換為可執(zhí)行的Java字節(jié)碼)、Java運行時環(huán)境(包括Java虛擬機JVM和一組標準類庫,用于執(zhí)行特定任務(wù))、Java類庫(提供了豐富的API和工具,如Swing、AWT、IO等,幫助開發(fā)者快速創(chuàng)建應(yīng)用程序)、以及各種開發(fā)工具(如javac編譯器、javadoc文檔生成器、jdb調(diào)試器等)。
由于Java字節(jié)碼在不同平臺上都是可移植的,使用JDK開發(fā)的Java應(yīng)用程序可以在任何支持Java虛擬機的操作系統(tǒng)上運行,這使得JDK在跨平臺開發(fā)中廣泛應(yīng)用。
JDK環(huán)境變量怎么配置
1.計算機右鍵屬性,高級系統(tǒng)設(shè)置,高級,環(huán)境變量
2.選擇系統(tǒng)變量下的,新建
3.新建,添加變量名 JAVA_HOME ,變量值為之前自己jdk的安裝路徑C:\Program Files\Java\jdk1.8.0_77隨后點擊確定
4.繼續(xù)新建,添加變量名 CLASSPATH ,變量值為 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意前面的有個點“.”不要漏掉)
5.找到系統(tǒng)變量里變量為Path的行
6.選中,并點擊編輯,追加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 到變量值最后。注意前面的;和后面的;不要忘記帶了,一定要寫上
7.確定保存,配置完成,設(shè)置完成,win+R,輸入cmd,打開命令行輸入 java -version,確定安裝是否正確。
JDK 1.8新特性
1、接口改善
現(xiàn)在接口里已經(jīng)完全可以定義靜態(tài)方法了. 舉一個比較普遍的例子就是在java類庫中, 對于一些接口如Foo, 都會有一個有靜態(tài)方法的工具類Foos 來生成或者配合Foo對象實例來使用. 既然靜態(tài)方法可以存在于接口當中, 那么大多數(shù)情況下 Foos工具類完全可以使用接口中的公共方法來代理 (或者將Foos置成package-private).
2、函數(shù)式接口
Java 8 引入的一個核心概念是函數(shù)式接口。如果一個接口定義個唯一一個抽象方法,那么這個接口就成為函數(shù)式接口。比如,java.lang.Runnable就是一個函數(shù)式接口,因為它只頂一個一個抽象方法。
3、Lambdas
一個函數(shù)式接口非常有價值的屬性就是他們能夠用lambdas來實例化。
4、捕獲和非捕獲的Lambda表達式
當Lambda表達式訪問一個定義在Lambda表達式體外的非靜態(tài)變量或者對象時,這個Lambda表達式稱為“捕獲的”。
5、lambdas不做的事
你應(yīng)該記住,有一些lambdas不提供的特性。為了Java 8它們被考慮到了,但是沒有被包括進去,由于簡化以及時間限制的原因。
Non-final* 變量捕獲 - 如果一個變量被賦予新的數(shù)值,它將不能被用于lambda之中。"final"關(guān)鍵字不是必需的,但變量必須是“有效final”的(前面討論過)。
6、java.util.function
作為Comparator 和Runnable早期的證明,在JDK中已經(jīng)定義的接口恰巧作為函數(shù)接口而與lambdas表達式兼容。同樣方式可以在你自己的代碼中定義任何函數(shù)接口或第三方庫。
7、泛型接口改進
這是一個以前不能做到的,對編譯器判定泛型能力的努力改進。在以前版本的Java中有許多情形編譯器不能給某個方法計算出泛型,當方法處于嵌套的或串聯(lián)方法調(diào)用這樣的上下文的時候,即使有時候?qū)Τ绦騿T來說它看起來“很明顯”。那些情況需要程序員明確的指定一個“類型見證”(type witness)。它是一種通用的特性,但吃驚的是很少有Java程序員知道(我這么說是基于私下的交流并且閱讀了一些StackOverflow的問題)。
8、java.time
在Java8中新的 date/timeAPI存在于 java.time包中。如果你熟悉Joda Time,它將很容易掌握。事實上,我認為如此好的設(shè)計,以至于從未聽說過 Joda Time的人也能很容易的掌握。
幾乎在API中的任何東西都是永恒的,包括值類型和格式化 。對于Date域或者處理或處理本地線程日期格式化不必太過擔心。
9、集合API附件
實際上接口能夠定義默認方法允許了JDK作者加入大量的附件到集合API接口中。默認實現(xiàn)在核心接口里提供,而其他更有效或更好的重載實現(xiàn)被加入到可適用的具體類中。