jdk為開(kāi)發(fā)工具包,要開(kāi)發(fā)程序必須有jdk,主要組成部分是編譯器,編譯java源文件(你寫(xiě)的java代碼)用的
jre為運(yùn)行環(huán)境,要運(yùn)行程序必須有jre。用來(lái)運(yùn)行上面編譯器編譯好的源文件。
jvm是java虛擬機(jī),包含在jre里面。java的虛擬機(jī)
Java程序的運(yùn)行原理
首先你要有java源程序吧,假設(shè)你有A.java文件,然后編譯它,這時(shí)就會(huì)出來(lái)一個(gè)以A.class。然后再控制臺(tái)輸入java A ,重點(diǎn)來(lái)了:Java虛擬機(jī)JVM會(huì)首先加載這個(gè)類,虛擬機(jī)會(huì)啟動(dòng)一個(gè)一個(gè)Main線程,程序就會(huì)從main()方法開(kāi)始執(zhí)行,然后退出main方法。程序執(zhí)行完畢。
Java虛擬機(jī)(JVM)
Java虛擬機(jī)(JVM)是Java Virtual Machine的縮寫(xiě),它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能模擬來(lái)實(shí)現(xiàn)的。
Java中,類加載器把一個(gè)類裝入JAVA虛擬機(jī)需要經(jīng)過(guò)三個(gè)步驟來(lái)完成:裝載、鏈接、初始化,其中鏈接又分來(lái)校驗(yàn)、準(zhǔn)備、解析過(guò)程
裝載:查找和導(dǎo)入.class文件
鏈接:檢查裝入.class文件的正確性,然后,java虛擬機(jī)為變量分配內(nèi)存,設(shè)置默認(rèn)值
初始化:把符號(hào)引用變成直接引用。。。