简单介绍JDK、JRE、JVM三者区别
簡(jiǎn)單介紹JDK vs JRE vs JVM三者區(qū)別
文編|JavaBuild
哈嘍,大家好呀!我是JavaBuild,以后可以喊我鳥哥,嘿嘿!俺滴座右銘是不在沉默中爆發(fā),就在沉默中滅亡,一起加油學(xué)習(xí),珍惜現(xiàn)在來(lái)之不易的學(xué)習(xí)時(shí)光,等工作之后,你就會(huì)發(fā)現(xiàn),想學(xué)習(xí)真的需要擠時(shí)間,厚積薄發(fā)啦!
1995年Sun公司在SunWorld大會(huì)上發(fā)布了Java1.0版本,并提出可那個(gè)響徹云霄的“一次運(yùn)行,隨處編譯”的口號(hào),這句話充分的展示出了Java的跨平臺(tái)特性,提到跨平臺(tái),便衍生出了我們今天需要討論的話題,JDK、JRE、JVM三者的區(qū)別
JDK:Java Development Kit( java 開發(fā)工具包)。即java語(yǔ)言編寫的程序所需的開發(fā)工具包,包含了 JRE,同時(shí)還包括 java 源碼的編譯器 javac、監(jiān)控工具 jconsole、javap(反編譯工具)、 javadoc(文檔注釋工具)、jdb(調(diào)試器)、分析工具 jvisualvm等等。
JRE:Java Runtime Environment( java 運(yùn)行時(shí)環(huán)境)。即java程序的運(yùn)行時(shí)環(huán)境,包含了 java 虛擬機(jī),java基礎(chǔ)類庫(kù)。作為運(yùn)行時(shí)環(huán)境,顧名思義,如果僅是用來(lái)運(yùn)行Java程序,而不是用開發(fā)Java的話,安裝了JRE就夠了。
圖中為Oracle官網(wǎng)給出的JDK,JRE,JVM三者的區(qū)別。
JVM:Java Virtual Machine(Java虛擬機(jī))的縮寫,.class 文件會(huì)在 JVM 上執(zhí)行,JVM 會(huì)解釋給操作系統(tǒng)執(zhí)行,有自己的指令集,解釋自己的指令集到 CPU 指令集和系統(tǒng)資源的調(diào)用,JVM 只關(guān)注被編譯的 .class 文件,不關(guān)心 .java 源文件。一套字節(jié)碼指令集、一組寄存器、一個(gè)棧、一個(gè)垃圾回收堆和一個(gè)存儲(chǔ)方法域等組成,屏蔽了不同操作系統(tǒng)(macOS、Windows、Linux)的差異性,使得 Java 能夠“一次編譯,到處運(yùn)行”。
JVM使我們需要重點(diǎn)關(guān)注的對(duì)象,后續(xù)還會(huì)針對(duì)JVM出一系列的面試題,敬請(qǐng)期待。
總結(jié)
以上是生活随笔為你收集整理的简单介绍JDK、JRE、JVM三者区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如果有人在你的论坛、博客,乱留言、乱回复
- 下一篇: 【开源项目】轻量元数据管理解决方案——M