JVM JDK JRE

JVM JDK JRE

JVM:

  • Java是一種平臺無關性(一次編譯,隨處可以運行)的編程語言,而平臺無關性的核心在於.class字節碼文件,以及Java虛擬機(JVM)。
  • .class字節碼文件是平臺無關的,其實質是面向JVM的,JVM是通過類加載器加載字節碼文件,而不同的操作系統,如Windows,Linux,macOS,則有不同的JVM的實現。

Java編譯與解釋共存的理解:

在這裏插入圖片描述

從.class文件到二進制機器碼,JVM類加載器首先會加載字節碼文件,然後通過解釋器逐行解釋執行,這種解釋執行的速度相對較慢。有些代碼塊和方法是屬於經常被調用的(熱點代碼),後來引入了JIT,即即時編譯器,JIT屬於運行時編譯。JIT編譯器完成第一次編譯後,會將編譯完成的機器碼保存下來,下次直接使用。毋庸置疑,機器碼的運行速度是一定高於解釋執行的速度的。這也就是Java編譯與解釋並存。

JDK和JRE

  • JDK 是功能齊全的Java SDK (Software development kit)。它包含JRE,且還有Javac編譯器和一些工具,如Javadoc等。它能夠創建和編譯程序。
  • JRE,完備的java運行時環境,是運行已編譯 Java 程序所需的所有內容的集合,包括 Java虛擬機(JVM),Java類庫,java命令和其他的一些基礎構件。如果只是單純地跑Java程序,可以只裝JRE,就足夠了。但,JRE不能編譯、創造程序,所以,如果設計程序的開發,JRE則完全不能滿足需求。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章