天天看點

JDK、JRE、JIT、SDK、JVM的差別你是否了解?JDK(Java Development Kit 開發工具包)JRE(Java運作時環境)JVM(Java虛拟機)類加載器方法區堆棧PC寄存器JIT編譯器本機方法堆棧本機方法接口垃圾收集JDK體系結構和API的詳細資訊API和方法的差別JDK與SDK的差別

JDK(Java Development Kit 開發工具包)

JDK(java development kit)是JRE(Java運作時環境)的超集,它包含JRE所擁有的一切以及編譯器、調試器等開發工具。

JDK、JRE、JIT、SDK、JVM的差別你是否了解?JDK(Java Development Kit 開發工具包)JRE(Java運作時環境)JVM(Java虛拟機)類加載器方法區堆棧PC寄存器JIT編譯器本機方法堆棧本機方法接口垃圾收集JDK體系結構和API的詳細資訊API和方法的差別JDK與SDK的差別

JRE(Java運作時環境)

JRE(Java運作時環境)提供JVM(Java虛拟機)運作的環境。JRE包含JVM、類庫和其他檔案,不包括編譯器和調試器等開發工具。

這意味着,您可以在JRE中運作代碼,但不能在JRE中開發和編譯代碼。

JDK、JRE、JIT、SDK、JVM的差別你是否了解?JDK(Java Development Kit 開發工具包)JRE(Java運作時環境)JVM(Java虛拟機)類加載器方法區堆棧PC寄存器JIT編譯器本機方法堆棧本機方法接口垃圾收集JDK體系結構和API的詳細資訊API和方法的差別JDK與SDK的差別

JVM(Java虛拟機)

JVM(Java虛拟機)通過使用JRE提供的類、庫和檔案來運作程式。JVM能夠運作用Java和其他語言編寫的程式,也可以編譯成Java位元組碼。例如Jython、Jruby、Closure、Apache、Groovy、Kotlin等。

JDK、JRE、JIT、SDK、JVM的差別你是否了解?JDK(Java Development Kit 開發工具包)JRE(Java運作時環境)JVM(Java虛拟機)類加載器方法區堆棧PC寄存器JIT編譯器本機方法堆棧本機方法接口垃圾收集JDK體系結構和API的詳細資訊API和方法的差別JDK與SDK的差別

現在讨論了用于JVM的術語。

類加載器

類加載器讀取.class檔案并将位元組碼儲存在方法區域中。

方法區

方法區域儲存.class檔案的類級資訊。JVM隻有一個方法區域,在所有類之間共享。

堆是配置設定對象的JVM記憶體部分。JVM為每個.class檔案建立一個對象。

棧是JVM記憶體部分,但與堆不同,它用于存儲臨時變量,即方法參數。

PC寄存器

PC寄存器用于跟蹤已執行的指令和将要執行的指令。因為指令是由線程執行的,是以每個線程都有一個單獨的PC寄存器。

JIT編譯器

JIT也稱為即時編譯器。調用方法時使用。JIT将被調用方法的位元組碼編譯成本機代碼。當一個方法在本機代碼中編譯時,JVM直接調用該方法的編譯代碼,而不是解釋它。

本機方法堆棧

用于通路虛拟機的運作時資料區域的本機方法。

本機方法接口

它使java代碼能夠在C或C++中用本地應用程式調用或調用。本機應用程式是特定于系統硬體和作業系統的低級語言程式。

垃圾收集

通過JVM使用垃圾收集進行自動記憶體管理。它從堆中銷毀未引用的對象,以便為新對象配置設定更多記憶體。

JDK體系結構和API的詳細資訊

在這個圖中,您将了解這些庫和API是如何分布在不同的級别上的。

JDK、JRE、JIT、SDK、JVM的差別你是否了解?JDK(Java Development Kit 開發工具包)JRE(Java運作時環境)JVM(Java虛拟機)類加載器方法區堆棧PC寄存器JIT編譯器本機方法堆棧本機方法接口垃圾收集JDK體系結構和API的詳細資訊API和方法的差別JDK與SDK的差別

API和方法的差別

API(application programming interface)接口,世界上其他地方都能看到并使用。方法可以是公共接口的一部分,也可以不是。但是API執行一組方法。

在java中,api通過接口提供,接口實際上是一組公共方法。API具有類似于契約的方法簽名和傳回類型。

例如,list api提供不同的方法簽名和預期結果作為傳回類型,以便您可以根據自己的友善使用。

JDK與SDK的差別

JDK(Java開發工具包)是SDK(軟體開發工具包)的擴充子集。

  • JDK包括用于開發、調試和監視Java程式的工具。它主要負責Java程式的編寫和運作。
  • SDK由與Web應用程式或移動應用程式相關的額外軟體組成,如應用伺服器、文檔、調試器、代碼示例、教程、GlassFish伺服器、MySQL和IDE Netbeans。
原文連結:http://javakk.com/1295.html

如果覺得本文對你有幫助,可以關注一下我公衆号,回複關鍵字【面試】即可得到一份Java核心知識點整理與一份面試大禮包!另有更多技術幹貨文章以及相關資料共享,大家一起學習進步!

JDK、JRE、JIT、SDK、JVM的差別你是否了解?JDK(Java Development Kit 開發工具包)JRE(Java運作時環境)JVM(Java虛拟機)類加載器方法區堆棧PC寄存器JIT編譯器本機方法堆棧本機方法接口垃圾收集JDK體系結構和API的詳細資訊API和方法的差別JDK與SDK的差別