Java SE/EE/ME概念理解(Java版本發展歷史)

繼上一篇文章http://www.cnblogs.com/EasonJim/p/6181981.html中說的區別,其實分析的不夠完全,所以再次在這裏作詳細的分析。html

零、Java與Sun、Oracle發展歷史:

一、說明:最開始Java是Sun公司的,而後是Oracle(甲骨文)收購了Sun(太陽微系統/Sun Microsystems),最後就是Java變成Oracle了,收購時間爲:2009-04-20;因此下文中提到的Sun和Oracle都是具備歷史上的關係。java

二、參考:程序員

http://tech.163.com/special/00093BH6/oraclesun.html編程

1、從JDK 1.0到J2SE 1.2,最原始的版本發展歷史

一、JDK 1.0版本於1996年1月23日發佈,叫作爲Oak。而真正第一個穩定的版本JDK 1.0.2,被稱做Java 1。後端

二、到J2SE 1.2版本,代號爲Playground。 這個在1998年12月8日的發佈的版本和其到J2SE 5.0的後續版本被重更名爲Java 2,而版本名稱「J2SE」(Java 2平臺,標準版)取代JDK以區別出來自J2EE(Java 2平臺,企業版) 和J2ME(Java 2 Platform,Micro Edition)的基礎平臺。api

三、也就是說,更改成Java 2以後再細分了三個版本出來,以區分Java 2平臺級別。安全

四、參考:服務器

https://zh.wikipedia.org/wiki/Java%E7%89%88%E6%9C%AC%E6%AD%B7%E5%8F%B2(Java版本歷史)網絡

2、從J2SE到Java SE提及,也就是發展歷史

無論是J2SE仍是J2EE,關注的點是J2,也就是Java 2。oracle

一、Java 2介紹:

Java 2平臺包括:標準版(J2SE)、企業版(J2EE)和微縮版(J2ME)三個版本。J2SE、J2ME和J2EE,這也就是SunONE(Open NetEnvironment)體系。J2SE就是Java2的標準版,主要用於桌面應用軟件的編程;J2ME主要應用於嵌入式系統開發,如手機和PDA的編程;J2EE是Java2的企業版,主要用於分佈式的網絡程序的開發,如電子商務網站和ERP系統。

二、J2SE改成Java SE:

Java SE 6,代號爲Mustang。版本發佈於2006年12月11日,Sun把本來的名稱「J2SE」改成「Java SE」,而後再從版本號中去掉「.0」,而開發者內部編號仍然是1.6.0。這個版本是根據JSR 270開發的。

三、參考:

http://baike.baidu.com/item/J2SE(J2SE介紹)

https://zh.wikipedia.org/wiki/Java%E7%89%88%E6%9C%AC%E6%AD%B7%E5%8F%B2(Java版本歷史)

3、J2SE 1.4到J2SE 5.0再到Java SE 6的版本編號發展歷史

以上三個是比較具備表明性的版本編號;

一、標紅的數字叫作版本編號。

二、而從J2SE 5.0開始,改編了這個原始版本編號,採用數字輩進行代替,但內部仍是使用版本編號,因此還能夠對這些數字這麼說:內部版本編號。

三、官方變動說明:J2SE 5.0版本,代號爲Tiger。這個在2004年9月30日發佈的版本本來以1.5編號,也就是仍然使用內部版本編號。這個數字輩改變是爲了「更好地反映成熟度、穩定性、可擴充性和J2SE的安全水準」。這個版本是在JSR 176底下被開發。

四、而5.0到6版本編號的變動,經歷了兩大改變,1爲版本編號,2爲J2SE改成Java SE;

五、以上變動的官方說明:Java SE 6版本,代號爲Mustang。版本發佈於2006年12月11日,Sun把本來的名稱「J2SE」改成「Java SE」,而後再從版本號中去掉「.0」,而開發者內部編號仍然是1.6.0。這個版本是根據JSR 270開發的。

六、這個內部版本編號使用很是普遍,好比咱們安裝的JDK上,所有使用內部版本編號,須要注意的是,在安裝包的文件夾版本編號是以三位進行命名的,好比:1.6.0_x,1.6.0大致不改變,除非新大版本發佈,然後面的x是bug修復的補丁級別的。在好比Windows下的JDK安裝目錄:C:\Program Files\Java\jdk1.8.0_131

七、經過以上的解釋,也就能夠推斷出這些內部版本編號對應數字輩,好比即將發佈的Java SE 9,若是官方沒明確規定,那麼就是1.9.0。

八、參考:

https://zh.wikipedia.org/wiki/Java%E7%89%88%E6%9C%AC%E6%AD%B7%E5%8F%B2(Java版本歷史)

4、Java 8與Java SE 8有什麼區別

一、其實沒有什麼區別,Java 8就是Java SE 8。

二、若是更深刻的解釋,Java 8表明技術的更新點,在JSR的便準下經過的新技術點,而這些更新的技術放在了Java SE 8的安裝包JDK 8下。

三、好比:從J2SE 5.0開始就叫作Java 5,到Java SE 6叫作Java 6;這些特色足以說明,這兩個就是同一個東西。

八、參考:

https://zh.wikipedia.org/wiki/Java%E7%89%88%E6%9C%AC%E6%AD%B7%E5%8F%B2(Java版本歷史)

5、JDK 8與Java SE 八、Java EE 8有什麼區別

一、從上面的發展歷史來講明,JDK就是Java SE,這二者就是同一個東西。

二、更有力的證據,在JDK下載頁面,以下所示:

三、還能夠這麼說,JDK就是Java平臺,一樣也是Java SE。若是要使用Java語言進行開發,包括開發Web,那麼必定要裝JDK。

6、開發Java EE的Web,須要安裝Java SE仍是Java EE,或者說是JDK

一、先解釋Java EE,Java EE平臺構建於Java SE平臺之上,Java EE平臺提供一組API和運行環境來開發和運行大規模的,多層的,可擴展的,可靠的和安全的網絡應用程序。

二、也就是說Java EE是一個標準而已,而這些標準的實現是Web容器提供的,好比Servlet-API,在Tomcat這個Web容器下的lib文件夾就集成了servlet-api.jar的包。

三、在官方上的下載頁面上,有提供開發Java EE的SDK下載,我須要下載嗎?

下載下來的是glassfish的Web容器,裏面是按照Java EE的標準API開發的,能運行Java EE的Web程序,同時這個容器還提供了對EJB的支持。

四、無論開發Java EE仍是Java SE,只要開發與Java語言有關的程序,都必須安裝JDK。好比在開發Web程序,就是與Java EE有關的,那就必須引入Web容器提供的API。好比servlet-api.jar就是Tomcat提供的,在不用POM管理的狀況下,就必須導入這個JAR包。而Java SE通常表明了Application類型,好比開發桌面應用,通常是包含在了Java SE中,也就是JDK中,只須要這個JDK裏買的包便可,與Java EE無關。

五、再者,若是要開發Web應用,並且要使用EJB,那麼必須引入glassfish的Web容器提供的EJB的API的JAR包。

六、參考:

http://www.cnblogs.com/pugang/p/4619912.html

https://zh.wikipedia.org/wiki/Java_EE

http://baike.baidu.com/item/Java%20EE

7、Java EE有獨立的版本發展歷史

一、首先能夠確定的是,Java EE有本身獨立的版本發展歷史,這一點與Java SE是區分開的。不要這樣錯誤的認爲Java SE 8就表明了Java EE 8,這兩個是不一樣的東西。

二、從上面的觀點中能夠解釋的一點是,Java EE提供了一組標準的API,而Web容器是實現這組API,而後提供JAR包給開發人員。那麼在Web容器去實現這組API時,好比實現Java EE 7的API時,可能會使用Java 8的新語言特性去實現;那麼此時,開發人員在引入這個JAR包時,就必須安裝支持Java 8的安裝包,也就是Java SE 8,JDK 8。那麼這種聯繫關係能夠說明是有聯繫,但功能倒是區分的。

三、參考:

http://docs.oracle.com/javaee(Java EE API文檔)

https://zh.wikipedia.org/wiki/Java_EE(Java EE發展歷史)

8、Java EE下的Servlet和JSP發展歷史

一、在Java EE的發展歷史下,具備表明性的是Servlet和JSP這兩個,這兩個也是有發展歷史的,不過這些發展歷史都同一歸到了Java EE下,當一個提案被JCP經過時,那麼新的版本就會收入到Java EE的新版本中。各大Web容器廠商就會按照標準API進行開發。

二、參考:

https://zh.wikipedia.org/wiki/Java_Servlet(Servlet發展歷史)

https://zh.wikipedia.org/wiki/JSP(JSP發展歷史)

9、對於實現Java EE標準API的Web容器有哪些?

一、在Web容器方面,主要圍繞兩大方面的技術支持:Servlet和EJB。有些容器是不支持EJB的,因此在使用上須要注意。

二、下面是Web容器的相關介紹:

Tomcat

Apache鼎力支持的Java Web應用服務器(Servlet容器),穩定性比較強和文檔資源比較全面,在開源領域受到衆多追捧。

JBoss

當之無愧的Java EE容器,同時支持Servlet和EJB,企業級開發人員普遍使用,由於畢竟彌補了Tomcat只支持Servlet的遺憾。

Resin

Resin也僅僅是一個Servlet容器,運行速度很是優秀,使得它在輕量級Java Web領域比較受歡迎,特別是互聯網Web領域,並且他們有提供商業版本支持,一些知名商業公司使用他們的服務比較多,例如16三、ku6等。Resin4支持不一樣的Web App分配不一樣的端口。

WebLogic和WebSphere

來自BEA公司的WebLogic和IBM的WebSphere,跟Resin比較相似,一樣是隻支持Servlet容器的商業級應用。WebLogic 支持企業級的、多層次的和徹底分佈式的Web應用,而且服務器的配置簡單、界面友好。IBM的WebSphere能夠細分爲WebSphere Performance Pack、Cache Manager 和WebSphere Application Server等系列,其中WebSphere Application Server是基於Java的應用環境,能夠運行於Sun Solaris、Windows NT等多種操做系統平臺,用於創建、部署和管理Internet和Intranet Web應用程序。

Glassfish

Sun公司本身發行的Java EE服務器,開源社區比較活躍,通過v1\v2到目前的v3,它已經逐步走向成熟。做爲一款免費、開放源碼的應用服務,她實現了Java EE 5. Java EE 5平臺涵蓋了EJB 3.0、JSF 1.二、Servlet 2.五、JSP 2.一、JAX-WS 2.0、JAXB 2.0、 Java Persistence 1.0、Common Annonations 1.0、StAX 1.0等。

Glassfish支持經過內存會話狀態複製,擁有良好的部署體系結構的可用性和可擴展性。對於集羣的支持也很強大,簡單添加機器,便可輕鬆實現網站的負載能力。

對於HTML生成解析能力吞吐量與Apache不相上下。咱們一般用Tomcat會做爲後端去處理JSP內容,就是由於它對於HTML解析吞吐量比較吃緊。

Glassfish還支持目錄部署,熱部署,這些都是Tomcat的缺陷。版本也比較人性化,有開發環境的簡化版,部署Web項目的版本。

三、參考:

https://putty.biz/321(Web經常使用容器)

10、JCP和JSR是什麼 

一、JCP(Java Community Process)(Java社區進度)成立於1998年,是使有興趣的各方參與定義Java的特徵和將來版本的正式過程。

二、JCP使用JSR(Java規範請求,Java Specification Requests)做爲正式規範文檔,描述被提議加入到Java體系中的的規範和技術。

三、JSR變爲final狀態前須要正式的公開審查,並由JCP Executive Committee投票決定。最終的JSR會提供一個參考實現,它是免費並且公開源代碼的;還有一個驗證是否符合API規範的Technology Compatibility Kit。

四、能夠這麼理解,每個Java的規範都是經過JCP進行投票經過的,而這些標準的編號有JSR進行管理的。

五、參考:

https://zh.wikipedia.org/wiki/JCP(JCP解釋)

https://www.jcp.org(JCP社區,能夠自由註冊,而且能夠提交本身的意見,若是經過了,將收錄進去)

https://www.jcp.org/en/jsr/detail?id=379(這個是Java 9的提案)

https://www.jcp.org/en/jsr/results?id=5962(這個是Java 9的投票結果)

11、JDK與OpenJDK區別

一、JDK: Java Development Kit(JDK)是太陽微系統針對Java開發人員發佈的免費軟件開發工具包(SDK,Software development kit)。自從Java推出以來,JDK已經成爲使用最普遍的Java SDK。因爲JDK的一部分特性採用商業許可證,而非開源。所以,2006年太陽微系統宣佈將發佈基於GPL的開源JDK,使JDK成爲自由軟件。在去掉了少許閉源特性以後,太陽微系統最終促成了GPL的OpenJDK的發佈。

二、OpenJDK:OpenJDK原是Sun Microsystems公司爲Java平臺構建的Java開發環境(JDK)的開源版本,徹底自由,開放源碼。Sun Microsystems公司在2006年的JavaOne大會上稱將對Java開放源代碼,於2009年4月15日正式發佈OpenJDK。甲骨文在2010年收購Sun Microsystem以後接管了這個項目。

三、因爲發展歷史關係,OpenJDK的發展大於JDK,因此以後JDK的開發會遵循OpenJDK的步伐。爲何這麼說,以前OpenJDK是JDK的一個分支,如今OpenJDK成爲了主幹。

四、一樣的,OpenJDK也是遵循JCP的JSR標準。或者這種方式不該該這麼說,無論OpenJDK仍是JDK,都叫作Java,那麼只要是Java就是受JCP的JSR標準約束。

五、參考:

https://zh.wikipedia.org/wiki/JDK(JDK說明)

https://zh.wikipedia.org/wiki/OpenJDK(OpenJDK說明)

http://www.cnblogs.com/EasonJim/p/7031961.html(OpenJDK與JDK區別分析)

http://openjdk.java.net/(OpenJDK官網)

http://jdk.java.net/(JDK下載)

12、EJB是什麼?

一、參考:http://www.cnblogs.com/EasonJim/p/7103546.html

十3、JDK與JRE區別,安裝哪一個

一、JRE(Java Runtime EnvironmentJDK):JRE顧名思義是Java運行時環境,包含了Java虛擬機,Java基礎類庫。是使用Java語言編寫的程序運行所須要的軟件環境,是提供給想運行Java程序的用戶使用的。JRE根據不一樣操做系統(如:Windows,Linux等)和不一樣JRE提供商(IBM,ORACLE等)有不少版本,最經常使用的是Oracle公司收購Sun公司的JRE版本。

二、JDK(Java Development Kit):JDK顧名思義是java開發工具包,是程序員使用Java語言編寫Java程序所需的開發工具包,是提供給程序員使用的。JDK包含了JRE,同時還包含了編譯Java源碼的編譯器javac,還包含了不少Java程序調試和分析的工具:jconsole,jvisualvm等工具軟件,還包含了Java程序編寫所需的文檔和demo例子程序。若是你須要運行Java程序,只需安裝JRE就能夠了。若是你須要編寫Java程序,須要安裝JDK。

三、參考:

https://www.zhihu.com/question/20317448/answer/14737358

十4、其它

http://docs.oracle.com/javase(Java SE API文檔)

https://zh.wikipedia.org/wiki/Java_SE,經過下方的入口進行查詢

相關文章
相關標籤/搜索