一、Java語言的發展:
JDK 1.0(1996)
JDK 1.1(1997)
J2SE 1.2(1998)
J2SE 1.3(2000)
J2SE 1.4 (2002)
J2SE 5.0 (2004)
Java SE 6 (2006) ————2009年sun公司被Oracle公司收購
Java SE 7 (2011)
Java SE 8 (2014)
Java SE 9 (2017)
Java SE 10 (2018)
二、Java語言版本:
1、JDK(oracle) VS OpenJDK
2009年sun公司被Oracle公司收購之前,將JDK源代碼開源,形成了OpenJDK。但是,sun公司在開源時,有一小部分(非核心功能)因為產權原因,無法完全開源,就被其他具有相同功能的代碼開源。
OpenJDK中只包含JDK中最核心的,還有其他一些第三方實現的功能、插件。OpenJDK被稱為極簡版的JDK。
關於OpenJdk和Jdk它的源代碼是有關系的:包含在OpenJdk源代碼中的絕大部分代碼和oralce Jdk 一模一樣
jdk就可以理解為openJdk的一個分支:不僅大家的代碼是相同的,而且,oracle Jdk還會和OpenJdk保持同步
同時,一旦oracle jdk一旦發現open Jdk中的一些bug,oracle在修復之后,把這些修復bug的代碼
IBM,Google,FaceBook RedHat都從OpenJdk中,拿到源代碼,然后,經過修改,增加 形成自己的JDK版本。阿里巴巴 DragonWell
2、 我們這4個月課程中,都是JDK8,原因如下:
(1)、直到今天,國內絕大部分公司,所使用的JDK版本仍然是JDK8
(2)、商業公司——求穩(原因)
LTS(長期支持維護版本)——維護周期長,至少3年穩定
短期支持維護版本——維護周期短,半年左右,不穩定
(3)、從JDK9開始,每半年發布一次,在這些迭代版本中,長期支持版本如下:
JDK8——>JDK11(2018年發布)—— >JDK17
三、JAVA語言平台版本
Java分三個版本:JavaSE(標准版)、JavaEE(企業版)、JavaME(微型版)
其中SE就是大家學的Java基礎,EE是公司最常用的用於網站開發(PC端),ME用於移動端開發,現在熟悉的安卓系統就是用JAVAME開發的。
Java既可以被編譯,也可以被解釋。通過編譯器,可以把Java程序翻譯成一種中間代碼-稱為字節碼-可以被Java解釋器解釋的獨立於平台的代碼。通過解釋器,每條Java字節指令被分析,然后在計算機上運行。只需編譯一次,程序運行時解釋執行。
Java不同於一般的編譯執行計算機語言和解釋執行計算機語言。它首先將源代碼編譯成二進制字節碼(bytecode),然后依賴各種不同平台上的虛擬機來解釋執行字節碼,從而實現了“一次編譯、到處執行”的跨平台特性
或者用一種更總結性的話術來表達就是:java跨平台就是能在不同的環境(主要是操作系統)上運行java程序!
這也是Java為什么這么火,為什么這么多年依然屹立不倒且久盛而不衰的原因。一個無視於平台,跨平台的語言,必然有長久的生命力。而作為程序員來說,職業發展的長遠規划,選擇Java遠比選擇其他無法實現跨平台的語言,更有長遠價值!
總結為三點:
JavaSE是做電腦上運行的軟件。
JavaEE是用來做網站的-(我們常見的JSP技術)
JavaME是做手機軟件的。
四、Java語言的特點
高級語言計算機本身是不認識的,計算機只認識機器語言(二進制 0 1)
一定有一個工具,幫助我們將我們的程序,轉化為計算機可以識別的對應到機器指令級別的二進制序列
1、 編譯型語言:用這種語言寫出的代碼,首先通過編譯器的編譯,全部轉化成目標代碼(二進制可執行文件 .exe),
然后依次在操作系統中執行
2、 解釋型語言:轉化一句,執行一句
java語言是解釋型:.java源代碼(編譯)——>.class——>
3、特點:
跨平台——一次編譯,多次運行
面向對象——解釋型
健壯——異常機制
動態——動態加載
分布式——高效
多線程 結構中立(字節碼)
開源——OpenJDK
4、Java語言的跨平台性
(1)、通過Java語言編寫的應用程序在不同的系統平台上都可以運行
(2)、實現原理:Java程序是在Java虛擬機上運行的,而非在操作系統上運行