對于學習Java的同學,JDK、JRE、JVM這三個詞都知道,但具體都表示什么,并不是所有人都說的清楚,今天咱們先淺淺的說清楚他們的區(qū)別和聯(lián)系。
定義
JDK(Java Development Kit) : Java 開發(fā)工具包。由JRE和Java開發(fā)工具組成(負責編譯Java源代碼)。
JRE(Java Runtime Environment):Java運行環(huán)境。由JVM和核心類庫組成。
JVM(Java Virtual Machine):Java虛擬機。負責執(zhí)行字節(jié)碼文件(.class文件)
聯(lián)系
從上面的定義就可以看出,他們三個是相互包含的關系,如下圖所示:
JDK、JRE、JVM的關系
下面再用場景的方式說一下:
王一三是一位Java開發(fā)工程師,他需要在自己的電腦上安裝JDK來開發(fā)JAVA程序,開發(fā)完成后,進行編譯,把.java的文件編譯成.class的文件,然后把*.class的文件以及依賴的jar包上傳到服務器進行運行,這時,王一三只需要在服務器上安裝JRE就可以了。JRE里面有兩個文件夾bin和lib,在這里可以認為bin里的就是JVM,lib中則是JVM工作所需要的類庫,而JVM和 lib和起來就稱為JRE。
可以看出只有開發(fā)人員的機器才需要安裝JDK,只有需要運行JAVA應用的機器才需要安裝JRE,JVM是JRE的核心組成部分之一,負責執(zhí)行字節(jié)碼文件(.class文件)。