淺談JAVA平台三個版本以及JAVA是如何實現跨平台操作的。


Java SE、Java EE、Java ME三者的區別

1. Java SE(Java Platform,Standard Edition)。Java SE 以前稱為 J2SE。它允許開發和部署在桌面、服務器、嵌入式環境和實時環境中使用的 Java 應用程序。Java SE 包含了支持 Java Web 服務開發的類,並為 Java Platform,Enterprise Edition(Java EE)提供基礎。

2. Java EE(Java Platform,Enterprise Edition)。這個版本以前稱為 J2EE。企業版本幫助開發和部署可移植、健壯、可伸縮且安全的服務器端 Java 應用程序。Java EE 是在 Java SE 的基礎上構建的,它提供 Web 服務、組件模型、管理和通信 API,可以用來實現企業級的面向服務體系結構(service-oriented architecture,SOA)和 Web 2.0 應用程序。

3. Java ME(Java Platform,Micro Edition)。這個版本以前稱為 J2ME。Java ME 為在移動設備和嵌入式設備(比如手機、PDA、電視機頂盒和打印機)上運行的應用程序提供一個健壯且靈活的環境。Java ME 包括靈活的用戶界面、健壯的安全模型、許多內置的網絡協議以及對可以動態下載的連網和離線應用程序的豐富支持。基於 Java ME 規范的應用程序只需編寫一次,就可以用於許多設備,而且可以利用每個設備的本機功能。

說得更簡單點

Java SE 是做電腦上運行的軟件。

Java EE 是用來做網站的-(我們常見的JSP技術)

Java ME 是做手機軟件的。 

JAVA語言為什么能跨平台?

因為Java程序編譯之后的代碼不是能被硬件系統直接運行的代碼,而是一種“中間碼”——字節碼。Java虛擬機(Java Virtual Machine) 簡稱JVM。然后不同的硬件平台上安裝有不同的Java虛擬機(JVM),由JVM來把字節碼再“翻譯”成所對應的硬件平台能夠執行的代碼。因此對於Java編程者來說,不需要考慮硬件平台是什么。所以Java可以跨平台。

因為它有虛擬機(JVM),JAVA程序不是直接在電腦上運行的,是在虛擬機上進行的,每個系統平台都是有自己的虛擬機(JVM),所以JAVA語言能跨平台。 

java代碼不是直接運行在CPU上,而是運行在java虛機(簡稱JVM)上的。  

java是先把java文件編譯成二進制字節碼的class文件,jvm就解釋執行class文件。  

就是因為java是運行在jvm上的,所以它的代碼就能不經修改,就能在不同平台的jvm上運行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm)  

假如用windows移植到UNIX,只需把java文件是UNIX的jvm上編譯成class文件,然后用jvm運行就可以了. 

java語言編寫的程序要先經過編譯的,但這個編譯不是生成特定平台的機器碼,而是生成一種與平台無關的字節碼。

java語言里負責解釋執行字節碼文件的是Java虛擬機(Java Virtual Machine)。JVM是運行字節碼文件的虛擬計算機。所有平台上的JVM向編譯器提供相同的編程接口,而編譯器只需面向虛擬機,生成虛擬機能理解的字節碼,然后由虛擬機解釋執行。之所以說Java跨平台是因為字節碼與平台無關,但不同平台的JVM是不同的,但它們向編譯器生成的Java字節碼程序都提供了相同的接口,但它們適應不同的平台的接口不同。JVM是Java跨平台的關鍵,只要為不同平台實現了相應的虛擬機,那編譯生成的相同的字節碼文件就可以被解釋后執行了。相同的字節碼在不同的平台上是不能直接運行的,要通過JVM這個轉換器來解釋執行。

總結:Java跨平台,原因是相同的字節碼文件在不同的平台上的不同的Java虛擬機解釋執行的,沒有虛擬機,Java也就不能實現所謂的跨平台操作了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM