天天看點

Java千百問_01基本概念(001)_什麼是Java什麼是Java

開發人員一般通過ide(eclipse、netbeans、jbuilder等)編寫、編譯java代碼(在遠古沒有ide的時代,都是用文本編輯器編寫,使用javac編譯),在這個過程中,會使用到jdk與第三方jar包(jar包即一組編譯後的類打成的壓縮包,可以使用解壓工具解壓成檔案結構)。

具體關系圖:

Java千百問_01基本概念(001)_什麼是Java什麼是Java

其中, jdk中包含jre,在jdk的安裝目錄下有一個名為jre的目錄,裡面有兩個檔案夾bin和lib,在這裡可以認為bin裡的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和lib和起來就稱為jre。

java development kit

是針對java開發人員的産品,是整個java的核心。

包括:java運作環境jre、java工具( javac/java/jdb等 )和java基礎類庫( java api,rt.jar等 )。

java runtime environment

是運作java程式所須環境的集合,包含jvm标準實作及java核心類庫。

與大家熟知的jdk不同,jre是java運作環境,并不是一個開發環境,是以沒有包含任何開發工具(如編譯器和調試器),隻是針對于使用java程式的使用者,隻有 通過它,java的開發者才得以将自己開發的程式釋出到使用者手中,讓使用者使用。

運作java程式一般都要求使用者的電腦安裝jre;沒有jre,java程式無法運作;而沒有java程式,jre就沒有用武之地。

包括:虛拟機jvm,運作類庫(runtime class libraries)和啟動器(java application launcher)。

java virtual machine

我們常說的java虛拟機, 是整個java實作跨平台最核心的部分,能夠運作通過java語言編寫的應用程式。

所有的java程式會首先被編譯為.class的類檔案,jvm虛拟機可以執行這種編譯後的類檔案,也就是說class并不直接與機器的作業系統相對應,而是經過虛拟機間接與作業系統互動,由虛拟機将程式解釋為目标代碼(不同作業系統不同),給本地系統執行。

jvm屏蔽了與具體作業系統平台相關的資訊,使得java程式隻需生成在java虛拟機上運作的目标代碼,就可以在多種平台上不加修改地運作。

隻有jvm還不能成class的執行,因為在解釋class的時候jvm需要調用解釋所需要的類庫lib,即jre中的lib類庫,單獨的jvm沒有任何作用。

原文位址:http://blog.csdn.net/ooppookid/article/details/50887927

繼續閱讀