首先需要確定的是JDK里是包含JRE的,而JRE里又包含JVM,它們區別在于面向的服務對象不同所以進行了不同的包裝。
JVM:JVM是面向操作系統,.Class字節碼->機器碼以及程序運行的內存的管理。
JRE:JRE是面向于程序的,在JVM的基礎上,增加了 Java 核心類庫字節碼(比如說 String.class、Object.class等這種運行時必須依賴的對象)。只能運行程序。
JDK:JDK是面向更上層的開發人員,JDK在JRE的基礎上,還提供了一套常用的開發工具和類庫,方便寫代碼(比如說方便部署的編譯工具,方便開發的工具類等)。