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/
有幾個地方還是不知道怎么表達。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM