JRE、JDK、JVM 及 JIT 之間有什麼不一樣

java虛擬機(JVM)
    使用java編程語言的主要優點就是平臺的獨立性。你曾經想知道過java怎麼實現平臺的獨立性嗎?對,就是虛擬機,它抽象化了硬件設備,開發者和他們的程序的得以操做系統。虛擬機的職責就是處理和操做系統的交流。java不一樣的接口規範對任何平臺都有良好的支持,由於jvm很好的實現了每一個平臺的規範。jvm能夠理解僞代碼字節碼,在用戶和操做系統之間創建了一層樞紐。
 
java運行時環境(JRE)
    java運行時環境是JVM的一個超集。JVM對於一個平臺或者操做系統是明確的,而JRE確實一個通常的概念,他表明了完整的運行時環境。咱們在jre文件夾中看到的全部的jar文件和可執行文件都會變成運行時的一部分。事實上,運行時JRE變成了JVM。因此對於通常狀況時候使用JRE,對於明確的操做系統來講使用JVM。當你下載了JRE的時候,也就自動下載了JVM。
 
java開發工具箱(JDK)
    java開發工具箱指的是編寫一個java應用所須要的全部jar文件和可執行文件。事實上,JRE是JDK的一部分。若是你下載了JDK,你會看到一個名叫JRE的文件夾在裏面。JDK中要被牢記的jar文件就是tools.jar,它包含了用於執行java文檔的類還有用於類簽名的jar包。
 
即時編譯器(JIT)
    即時編譯器是種特殊的編譯器,它經過有效的把字節碼變成機器碼來提升JVM的效率。JIT這種功效很特殊,由於他把檢測到的類似的字節碼編譯成單一運行的機器碼,從而節省了CPU的使用。這和其餘的字節碼編譯器不一樣,由於他是運行時(第一類執行的編譯?)the firs of its kind to perform the compilation(從字節碼到機器碼)而不是在程序運行以前。正是由於這些,動態編譯這個詞彙才和JIT有那麼緊密的關係。
 
引用自:http://www.javaexperience.com/java-difference-between-jvm-jre-jdk-jit/
有幾個地方仍是不知道怎麼表達。。
相關文章
相關標籤/搜索