Java體系:組成結構 運行機制 JRE/JDK/OpenJDK Java SE/EE/ME Java優點

Java體系:組成結構 運行機制 JRE/JDK/OpenJDK Java SE/EE/ME Java優點

       Java平臺是一個龐大的體系,爲了更好的使用Java,我們需要對Java體系有一個全面的瞭解。下面我們將會瞭解到:

1、什麼是 Java 技術?爲何需要 Java?

2、Java體系:

       Java組成結構以及Java程序運行機制;

       JRE、JDK以及OpenJDK的區別與聯繫;

       三大標準平臺:Java SE/ Java EE/ Java ME的區別與聯繫;

3、最後總結:Java優點是什麼?

1、什麼是 Java 技術?爲何需要 Java?

       Java 是由 Sun Microsystems 在 1995 年首先發布的編程語言和計算平臺。有許多應用程序和 Web 站點只有在安裝 Java 後才能正常工作,而且這樣的應用程序和 Web 站點日益增多。Java 快速、安全、可靠。從筆記本電腦到數據中心,從遊戲控制檯到科學超級計算機,從手機到互聯網,Java 無處不在!

2、Java體系

2-1、Java平臺組成結構 以及 Java程序運行機制


       Java平臺按功能實現的不同,可以劃分爲如下四個組成部分,下面簡單說說每個組成部分的作用,也就是Java程序運行機制:

1、Java API類庫

       JDK中提供的Java SE API 、以及第三方類庫等;

       編程中調用API,運行時,JVM中類加載器會把相應的API class文件加載進來執行。

2、Java編程語言

       用來編寫Java應用程序,具有簡單性、面向對象、分佈式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點;

       在"xx.java"程序文件中可使用Java API編程。

3、Java類文件格式

       "xx.java"文件經過/bin/javac編譯器編譯後,裏面的每個類都會生成一個"xx.class"的類文件,稱爲Java字節碼,這些文件都是按照規定的格式來存放類的數據和執行邏輯;

4、Java虛擬機

       Java虛擬機(Java Virtual Machine,JVM)作爲 Java 字節碼執行引擎,它在多種操作系統和架構上提供 Java 運行時環境。Java HotSpot 虛擬機是 Java SE 平臺的一個核心組件。它實現了 Java 虛擬機規範,並作爲 Java 運行時環境中的一個共享庫來提供。

       它包括class類加載器、JIT動態編譯器、執行引擎、以及垃圾收集器等;

       class類加載器可以分爲多種,可以自定義外部的類加載器,這裏我們只說JVM基本的類加載器,它可以把需要執行的class類文件加載進來,進行檢查驗證等;

       JIT即時編譯器(just-in-time compiler)將加載進來的class文件編譯成優化成機器指令;

       解釋器來直接執行class文件中的字節碼指令,稱爲解釋執行,執行速度較慢;

       本地代碼執行引擎用執行經JIT編譯的機器指令,速度快,但編譯需要更多內存、時間,導致啓動慢,並且class調用可能動態改變,導致需要重新編譯;

       所以通常是解釋執行和編譯執行混合的模式JIT編譯器只編譯那些"熱點代碼"。

       執行過程中,可能會通過JNI(Java Native Interface)來調用本地類庫,本地類庫可以是系統相關類庫,這樣就可以發出系統調用,使用系統資源了;也可以是自己實現的一些類庫,比如用C語言寫一些複雜的算法提高執行效率。

2-2、JRE、JDK以及OpenJDK

       如上圖,我們這裏主要講的JDK是指Sun(Oracle)官方的Java SE Development Kit,因爲官方還提供Java EE SDK,它是Java EE的參考實現,是實現Java EE最全的開發工具包。

1、JRE(Java Runtime Envirnment)

       JRE是支持Java程序運行的標準環境,提供運行用 Java 編程語言編寫的應用和小程序所需的庫、Java 虛擬機和其他組件。主要包括Java API類庫中的Java SE API(如rt.jar)、Java虛擬機(如/bin/java即HotSpot)。

       此外,JRE 還包括兩項關鍵的部署技術:Java 插件 — 使小程序可以在常用瀏覽器中運行;以及 Java Web Start — 通過網絡部署獨立的應用。它還是用於企業軟件開發和部署的 Java 2 Platform, Enterprise Edition (J2EE) 的基礎。

2、JDK(Java Development Kit)

       JDK稱爲Java開發包或Java開發工具,是一個編寫Java應用程序的開發環境。JDK是整個Java的核心,包括了Java程序設計語言、Java運行環境(JRE)、一些Java工具(文檔工具javadoc、打包工具jar.exe等)和更多Java類庫(如tools.jar)。

       JDK主要有:官方主流的OracleJDK,常用的還有OracleJDK的開源版本OpenJDK,其他還有Apache Harmony等。

3、JRE與JDK的區別

       JRE = Java SE API + JVM + Java 插件/Java Web Start部署技術;

       JDK = Java語言 + JRE + Java工具;

       JRE是個運行環境,JDK是個開發環境。

       開發Java程序需要JDK,而運行Java程序的時候就需要JRE。

       JDK裏面已經包含了JRE,因此只要安裝了JDK,就可以編輯Java程序,也可以正常運行Java程序;

       而用戶運行普通的Java程序無須安裝JDK,而只需要安裝JRE即可,因爲JDK包含了許多與運行無關的內容,佔用空間較大。


JRE與JDK更多內容請參考:http://www.oracle.com/technetwork/cn/java/javase/tech/index.html

4、SunJDK 與 OpenJDK區別


      2006年11月13日,OracleJDK開源項目爲OpenJDK,兩者代碼基本相同,可以認爲性能、功能、執行邏輯是一致的;

       區別:OpenJDK採用GPL V2協議放出,而SunJDK則採用JRL放出。兩者協議雖然都是開放源代碼的,但是在使用上的不同在於GPL V2允許在商業上使用,而JRL只允許個人研究使用,所以OpenJDK中沒有SunJDK中的一些商用閉源的功能,如JMX中的可選元件SNMP部份的代碼、Deployment(部署)功能等。

5、OpenJDK發展

       

       JDK6時,OpenJDK基於研發中的JDK7建立;

       OpenJDK7 Build20時建立OpenJDK6分支,剝離JDK7新功能,使OpenJDK6能部署應用;

       JDK7正式發佈後,OpenJDK7也同步更新爲OpenJDK7 u1;

       JDK8正式發佈後,OpenJDK也同步更新爲OpenJDK8;

6、Java EE SDK

       Java EE是一系列技術規範,官方提供的Java EE SDK是Java EE的參考實現,是實現Java EE最全的開發工具包。

2-3、三大標準平臺集合

       Java平臺按應用業務領域的不同,可以劃分爲如下三個版本的標準集合:

1、Java SE(Java Standard Edtion)

       Java標準版提供了用於開發桌面和服務器端企業應用程序的API和工具,可以讓您在桌面和服務器以及目前要求較高的嵌入式環境中開發和部署 Java 應用;                   

       更多參考:http://www.oracle.com/technetwork/cn/java/javase/tech/index.html

2、Java EE(Java Enterprise Edition)

       Java企業版是社區驅動的企業軟件標準,提供了用於開發多層企業應用程序的API和工具,現如今,Java EE不僅僅是指一種標準平臺,它更多的表達着一種軟件架構和設計思想;

       更多參考:http://www.oracle.com/technetwork/cn/java/javaee/tech/index.html

3、Java ME(Java Micro Edition)

       Java ME技術專門針對龐大的消費者空間,其涵蓋了極小的商品範圍,例如智能卡或尋呼機,直到機頂盒,幾乎與計算機一樣強大的設備。

4、Java SE 與 Java EE 區別

       Java EE是在Java SE基礎上發展構建的,是一系列技術規範,官方提供的Java EE SDK是Java EE的參考實現,是實現Java EE最全的開發工具包,而我們常說的JDK只是包含Java SE API實現,Java SE中存在與Java EE有關的規範;Java EE 7主要包括下面一些技術規範:

       Web 應用技術:    

Java Servlet 3.1

JavaServer Pages 2.3 (JSP)

Java API for WebSocket

Java API for JSON Processing

……

      企業應用技術:

Enterprise JavaBeans 3.2(EJB)

Java Persistence 2.1(JPA)

Java Transaction API (JTA) 1.2

Java Message Service API 2.0(JMS)

……

       此外還有Web服務技術、管理和安全性技術等等,更多請參考:http://www.oracle.com/technetwork/cn/java/javaee/tech/index.html

3、Java優點是什麼?

1、優秀的Java語言

      Java語言具有簡單性、面向對象、分佈式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點,語法特性很少,語法簡單,代碼可讀性高,學習成本低;

2、高性能虛擬機

       隔離硬件、系統層,降低應用難度,同時解釋與JIT熱點編譯配合執行,大大提高性能;

3、應用領域廣泛

       Java可以編寫桌面應用程序、Web應用程序、分佈式系統和嵌入式系統應用程序,android也是基於Java的;

4、龐大而完善的生態系統

       強大的IDE(Eclipse、IntelliJ Idea)、大量的第三方類庫、衆多的開發者以及很多殺手級應用(Hadoop,Tomcat)等;

5、開源,等等;

 

       上面我們對Java平臺體系有了一個全面的瞭解,後面我們將全面深入的學習瞭解Java,下篇將會介紹Java的發展:先介紹 Java發展歷史,然後在整個的發展史的基礎上,抽取幾個關注點的時間線,分別介紹各JDK版本的新特性、JVM發展、以及Java技術的應用發展……

 

 

【參考資料】

1、Oracle Java官網相關文檔:http://www.oracle.com/technetwork/cn/java/index.html

2、Java官方站點:https://www.java.com/zh_CN

3、JVM HotSpot說明:http://www.oracle.com/technetwork/cn/java/javase/tech/index-jsp-136373-zhs.html

4、《深入理解Java虛擬機》

發佈了57 篇原創文章 · 獲贊 248 · 訪問量 41萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章