貓頭鷹的深夜翻譯:JDK Vs. JRE Vs. JVM之間的區別

什麼是Java Development Kit (JDK)?

JDK一般用來開發Java應用和插件。基本上能夠認爲是一個軟件開發環境。JDK包含Java Runtime Environment(JRE),JRE包含加載器/解釋器,編譯器(javac),文檔生成器(Javadoc),打包功能(jar)和其它在開發中所須要功能:java

  • 加載代碼
  • 校驗代碼
  • 執行代碼
  • 提供運行時環境

什麼是Java Runtime Environment(JRE)

Java Runtime Environment(JRE)又稱爲Java RTE。JRE中包含核心類和支持文件。它還包含JVM。JVM會提供運行時環境。面試

  • 肯定JVM運行的特定類型。其類型主要由Sun和其它的幾個機構提供。
  • 其實現是一個知足JVM特定前提條件的客戶端程序。
  • 運行時實例不管什麼時候運行Java類,都會產生JVM。
  • JDK一個物理存在的工具包。它包含JRE和其餘工具。

clipboard.png

什麼是Java Virtual Machine(JVM)

JVM爲執行Java字節碼提供一個運行環境。它是一個抽象的獨立於平臺運行的機器。它的實現主要包含三個部分,描述JVM實現規格的文檔,具體實現和知足JVM要求的計算機程序以及實例(具體執行Java字節碼)。安全

JVM的主要任務包括:微信

  • 加載代碼
  • 校驗代碼
  • 執行代碼
  • 提供運行時環境

JDK, JRE和JVM之間的區別

clipboard.png

JRE的組成

  • 部署機制:Java Web Start, Java插件等
  • UI工具包:AWT,Swing,Java2D等
  • 集成庫:IDL,JDBC,RMI等
  • 其它基礎庫:I/O,JNI,JMX等
  • Lang和utils基礎庫:lang,util,格式化,序列化,打包等
  • JVM:Java HotSpot客戶端和服務端虛擬機

JRE功能

爲了瞭解JRE的功能,能夠看一下是如何加載Example.class這個類的。該類先被轉化爲一組字節碼並放入.class文件中。框架

clipboard.png

Java ClassLoader

ClassLoader將執行程序所需的每一個重要類放入堆棧中。它經過命名系統來提供彼此之間的安全性。源碼能夠來自於硬盤,系統以及其它來源。工具

Java 字節碼校驗器

JVM經過字節碼校驗器檢查格式並找出非法代碼。校驗器確JVM執行代碼時可以夠快,以及這段代碼不會損害現存的框架。spa

clipboard.png

Java解釋器

解釋器有兩個功能:插件

  • 執行字節碼
  • 正確調用隱藏的設備

clipboard.png

clipboard.png

clipboard.png
想要了解更多開發技術,面試教程以及互聯網公司內推,歡迎關注個人微信公衆號!將會不按期的發放福利哦~blog

相關文章
相關標籤/搜索