JVM/JRE/JDK之間的關(guān)系
Java平臺(tái)實(shí)際上就是運(yùn)行在各個(gè)操作系統(tǒng)之上的JVM,我們將JVM和相關(guān)的運(yùn)行時(shí)需要的庫(libraries)稱為JRE把兔。當(dāng)我們要開發(fā)java程序的時(shí)候沪伙,我們還需要編譯器和一些其他的開發(fā)工具,所以我們把這一部分加上JRE稱為JDK县好。
我們?cè)陂_發(fā)java程序的時(shí)候围橡,實(shí)際上是在編寫java的源碼。源碼通過編譯缕贡,生成java的字節(jié)碼翁授,這個(gè)字節(jié)碼就可以直接運(yùn)行在JRE的環(huán)境上了。
JVM--Java Virtural Machine
- JVM提供了一個(gè)java字節(jié)碼可以被運(yùn)行的環(huán)境
- JVM的任務(wù)是:加載代碼晾咪,驗(yàn)證代碼收擦,執(zhí)行代碼,提供運(yùn)行環(huán)境
- JVM是編譯后的java程序和硬件系統(tǒng)/底層操作系統(tǒng)之間的接口
- 不同的軟件/硬件有著不同的JVM配置
JRE--Java Runtime Environment
- JRE是JVM的一個(gè)補(bǔ)充谍倦,提供了JVM運(yùn)行時(shí)所需要的一些Java核心類庫塞赂。
- JRE是java代碼可以運(yùn)行的最低要求。
JDK--Java Development Kit
- JDK是一個(gè)完整的軟件開發(fā)工具
- JDK包含了一些軟件開發(fā)工具昼蛀,例如:Debugger, Compiler等等
三者在具體實(shí)踐中的目的是:
- JVM提供一個(gè)運(yùn)行環(huán)境
- JRE可以運(yùn)行代碼
- JDK可以編程并且運(yùn)行代碼