標籤:相對 app 平台無關 web j2se ogr 工具包 開發工具 類庫
Java中總有幾個術語,平時說的多,但是還是讓人有點摸不著頭腦,今天就來解析一下他們的區別:
l JDK:Java development toolkit,是 Java 語言的軟體開發套件(SDK)。這裡面包含了JAVA的運行環境(jre),JAVA工具(javac/java/jdb等)和JAVA基礎的類庫(即Java API 包括rt.jar)。
看到沒?JDK包含了JRE和Java API!所以,JDK可以說是包羅永珍。
l JRE:Java Runtime Environment,是運行基於Java語言編寫的程式所不可缺少的運行環境。JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,這些是運行Java程式的必要組件。
這個就是說JRE包含了JVM,同時它只是個運行環境(其實 主要是 JVM在它上面運行,Java程式都是在jvm上啟動並執行),抱 Java程式可以 運行,那自然就沒有各種開發工具(編譯器、調試器等等)
l JVM:java virtual machine,就是我們常說的java虛擬機器,它是整個java實現跨平台的最核心的部分,所有的java程式會首先被編譯為.class的類檔案,這種類檔案可以在虛擬機器上執行。也就是說class並不直接與機器的作業系統相對應,而是經過虛擬機器間接與作業系統互動,由虛擬機器將程式解釋給本地系統執行。
注意:只有JVM還不能成class的執行,因為在解釋class的時候 JVM需要調用解釋所需要的類庫lib,而jre包含lib類庫。JVM屏 蔽了與 具體作業系統平台相關的資訊,使得Java程式只需產生在Java虛擬機器上運 行的目標代碼(位元組碼),就可以在多種平台上不加修改地運行
l J2se:Java 2 Standard Edition是Java的標準版,用於標準的應用開發;其實是一個官方的標準,符合這個標準的產品叫“實現”。由於J2SE是標準版,所以只有JDK就可以實現。
l J2me:Java 2 Micro Edition是Java的微型版,常用於手機上的開發;其實是一個官方的標準,符合這個標準的產品叫“實現”。因為用於嵌入式開發,所以J2ME會有其他的標準,而滿足這個標準的就是實現了J2me,支援J2ME。
l J2ee:Java 2 Enterprise Edition是Java的一種企業版用於企業級的應用服務開發;其實是一個官方的標準,符合這個標準的產品叫“實現”。因為用於企業級開發,所以J2EE會有比JDK更加強大的標準,而滿足這個標準的就是實現了J2EE,支援J2EE,比如jboss,weblogic。
l Java API:Application Programming Interface,API是一些預先定義的函數,目的是提供應用程式與開發人員基於某軟體或硬體的以訪問一組常式的能力,而又無需訪問源碼,或理解內部工作機制的細節
運行Java程式時,虛擬機器裝載程式的class檔案所使用的Java API class檔案。所有被裝載的class檔案(包括從應用程式中和從Java API中提取的)和所有已經裝載的動態庫(包含本地方法)共同組成了在Java虛擬機器上啟動並執行整個程式。 在一個平台能夠支援Java程式以前,必須在這個特定平台上明確地實現API的功能。為訪問主機上的本地資源,Java API調用了本地方法。由於Java API class檔案調用了本地方法,Java程式就不需要再調用它們了。通過這種方法,Java API class檔案為底層主機提供了具有平台無關性、標準介面的Java程式。對Java程式而言,無論平台內部如何,Java API都會有同樣的表現和可預測的行為。正是由於在每個特定的主機平台上明確地實現了Java虛擬機器和Java API,
Java常用術語及區別