JDK(Java Development Kit)是針對(duì)Java開發(fā)員的產(chǎn)品,是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境
JRE绝骚、Java工具和Java基礎(chǔ)類庫耐版。
Java Runtime Environment(JRE)是運(yùn)行JAVA程序所必須的環(huán)境的集合,包含JVM標(biāo)準(zhǔn)實(shí)現(xiàn)及Java核心類庫压汪。
JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫粪牲,是整個(gè)java實(shí)現(xiàn)跨平臺(tái)的最核心的部分,能夠
運(yùn)行以Java語言寫作的軟件程序止剖。
JDK腺阳、JRE、JVM三者的區(qū)別與聯(lián)系 - 以德糊人 - ——挨踢民工 Playkid——
在計(jì)算機(jī)開發(fā)語言的歷史中穿香,從來沒有哪種語言象Java那樣受到如此眾多廠商的支持亭引,有如此多的開發(fā)工具。
JDK(Java Development Kit)
JDK是Java開發(fā)工具包皮获,是Sun Microsystems針對(duì)Java開發(fā)員的產(chǎn)品焙蚓。
JDK中包含JRE,在JDK的安裝目錄下有一個(gè)名為jre的目錄洒宝,里面有兩個(gè)文件夾bin和lib购公,在這里
可以認(rèn)為bin里的就是jvm,lib中則是jvm工作所需要的類庫雁歌,而jvm和 lib和起來就稱為jre宏浩。
JDK是整個(gè)JAVA的核心,包括了Java運(yùn)行環(huán)境JRE(Java Runtime Envirnment)靠瞎、一堆Java工具
(javac/java/jdb等)和Java基礎(chǔ)的類庫(即Java API 包括rt.jar)比庄。
①SE(J2SE)乏盐,standard edition佳窑,標(biāo)準(zhǔn)版,是我們通常用的一個(gè)版本丑勤,從JDK 5.0開始华嘹,改名為
Java SE。
》ň骸②EE(J2EE),enterprise edition强挫,企業(yè)版岔霸,使用這種JDK開發(fā)J2EE應(yīng)用程序,從JDK 5.0開始俯渤,
改名為Java EE呆细。
③ME(J2ME)八匠,micro edition絮爷,主要用于移動(dòng)設(shè)備趴酣、嵌入式設(shè)備上的java應(yīng)用程序,從JDK 5.0開
始坑夯,改名為Java ME岖寞。
JDK、JRE柜蜈、JVM三者的區(qū)別與聯(lián)系 - 以德糊人 - ——挨踢民工 Playkid——
金字塔結(jié)構(gòu) JDK=JRE+JVM+其它 運(yùn)行Java程序一般都要求用戶的電腦安裝JRE環(huán)境(Java Runtime Environment)仗谆;沒有jre,java程序無法運(yùn)行淑履;而沒有java程序隶垮,jre就沒有用武之地。
Java Runtime Environment(JRE)
是運(yùn)行基于Java語言編寫的程序所不可缺少的運(yùn)行環(huán)境秘噪。也是通過它狸吞,Java的開發(fā)者才得以將自
己開發(fā)的程序發(fā)布到用戶手中,讓用戶使用指煎。
RE中包含了Java virtual machine(JVM)蹋偏,runtime class libraries和Java application
launcher,這些是運(yùn)行Java程序的必要組件贯要。
與大家熟知的JDK不同暖侨,JRE是Java運(yùn)行環(huán)境,并不是一個(gè)開發(fā)環(huán)境崇渗,所以沒有包含任何開發(fā)
工具(如編譯器和調(diào)試器)字逗,只是針對(duì)于使用Java程序的用戶。
JVM(java virtual machine)
就是我們常說的java虛擬機(jī)宅广,它是整個(gè)java實(shí)現(xiàn)跨平臺(tái)的最核心的部分葫掉,所有的java程序會(huì)首先
被編譯為.class的類文件,這種類文件可以在虛擬機(jī)上執(zhí)行跟狱。
也就是說class并不直接與機(jī)器的操作系統(tǒng)相對(duì)應(yīng)俭厚,而是經(jīng)過虛擬機(jī)間接與操作系統(tǒng)交互,由虛擬
機(jī)將程序解釋給本地系統(tǒng)執(zhí)行驶臊。
只有JVM還不能成class的執(zhí)行挪挤,因?yàn)樵诮忉宑lass的時(shí)候JVM需要調(diào)用解釋所需要的類庫lib,而
jre包含lib類庫关翎。
JVM屏蔽了與具體操作系統(tǒng)平臺(tái)相關(guān)的信息扛门,使得Java程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)
代碼(字節(jié)碼),就可以在多種平臺(tái)上不加修改地運(yùn)行纵寝。