Java編譯器卻不將對(duì)變量和方法的引用編譯為數(shù)值引用,也不確定程序執(zhí)行過(guò)程中的內(nèi)存布局,而是將這些符號(hào)引用信息保留在字節(jié)碼中,由解釋器在運(yùn)行過(guò)程中創(chuàng)立內(nèi)存布局,然后再通過(guò)查表來(lái)確定一個(gè)方法所在的地址。
成都創(chuàng)新互聯(lián)是專業(yè)的塔河網(wǎng)站建設(shè)公司,塔河接單;提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行塔河網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
解釋器在java虛擬機(jī)中,編譯器在JDK或JRE 中。java虛擬機(jī)就是常說(shuō)的java 運(yùn)行環(huán)境,其縮寫(xiě)是 JRE,安裝在操作系統(tǒng)下的一個(gè)目錄中,這個(gè)目錄在安裝時(shí)可以由你自行指定,就像你安裝其它應(yīng)用軟件一樣。
第二步(運(yùn)行):java類運(yùn)行的過(guò)程大概可分為兩個(gè)過(guò)程:類的加載 類的執(zhí)行。需要說(shuō)明的是:JVM主要在程序第一次主動(dòng)使用類的時(shí)候,才會(huì)去加載該類。
執(zhí)行cmd命令javac后,顯示如圖所示編譯成功,說(shuō)明是java運(yùn)行正常。使用檢索軟件,搜索code.exe的安裝路徑,默認(rèn)如圖所示。打開(kāi)exe文件所在的路徑,找到exe文件,如圖所示。
執(zhí)行Java程序:JVM會(huì)按照程序的邏輯和功能執(zhí)行Java程序。程序員可以在程序中使用Java類庫(kù)和自定義類提供的方法和變量。垃圾回收:JVM還負(fù)責(zé)垃圾回收,它會(huì)自動(dòng)回收不再使用的內(nèi)存空間,防止程序出現(xiàn)內(nèi)存泄漏等問(wèn)題。
1、總的來(lái)說(shuō),Java程序的運(yùn)行機(jī)制可以概括為:編寫(xiě)源代碼 - 編譯生成字節(jié)碼文件 - 解釋執(zhí)行字節(jié)碼文件 - 加載所需類 - 執(zhí)行Java程序 - 垃圾回收。
2、垃圾收集在Java程序運(yùn)行過(guò)程中自動(dòng)進(jìn)行,程序員無(wú)法精確控制和干預(yù)。
3、java的跨平臺(tái)即跨操作系統(tǒng)的平臺(tái),也就是說(shuō)你寫(xiě)的java程序不需要修改就可以在不同的操作系統(tǒng)上運(yùn)行windows,linux,unix,當(dāng)然有個(gè)前提就是你的操作系統(tǒng)必須有java環(huán)境了,即安裝了對(duì)應(yīng)的jdk。
4、JAVA運(yùn)行機(jī)制。Java程序的運(yùn)行必須經(jīng)過(guò)編寫(xiě)、編譯、運(yùn)行三個(gè)步驟。編寫(xiě)是指在Java開(kāi)發(fā)環(huán)境中進(jìn)行程序代碼的輸入,最終形成后綴名為.java的Java源文件。
5、在windows平臺(tái)上編譯好的字節(jié)碼,copy到linux平臺(tái)后,經(jīng)過(guò)為linux而設(shè)計(jì)的Java虛擬機(jī)解釋后即可執(zhí)行??缙脚_(tái)這一特征,是通過(guò)字節(jié)碼和JVM來(lái)實(shí)現(xiàn)的。
6、由四方面組成:(1)Java編程語(yǔ)言 (2)Java類文件格式 (3)Java虛擬機(jī) (4)Java應(yīng)用程序接口 當(dāng)編輯并運(yùn)行一個(gè)Java程序時(shí),需要同時(shí)涉及到這四種方面。
1、JDK:英文名稱(java Development Kit),是java的開(kāi)發(fā)工具包。JDK是整個(gè)Java開(kāi)發(fā)的核心,集成了JRE和開(kāi)發(fā)工具包(通俗的說(shuō)就是開(kāi)發(fā)用的)JRE:英文名稱(Java Runtime Envuronment),是java運(yùn)行時(shí)環(huán)境。
2、jre是java的運(yùn)行環(huán)境,jdk是java的開(kāi)發(fā)工具包,jvm則是讓java能夠在任何平臺(tái)運(yùn)行的虛擬機(jī)。
3、而GRE是一個(gè)運(yùn)行環(huán)境,也就是說(shuō)有這個(gè)運(yùn)行環(huán)境,將jvm所轉(zhuǎn)換出來(lái)的代碼運(yùn)行出來(lái)。 JDK就是Java的一個(gè)軟件開(kāi)發(fā)工具包,這個(gè)軟件開(kāi)發(fā)工具包里面就包含了很多的子目錄,包括一些提供的類以及jvm和GRE。
4、JDK,JRE,JVM的區(qū)別與聯(lián)系 JDK(Java Development ToolKit) java 開(kāi)發(fā)工具 JDK是Java語(yǔ)言的軟件開(kāi)發(fā)工具包SDK。
5、總的來(lái)說(shuō),JDK、JRE、JVM三者都處在一個(gè)包含關(guān)系內(nèi),JDK包含JRE,而JRE又包含JVM。JDK,全稱Java Development Kit,是 Java 語(yǔ)言的軟件開(kāi)發(fā)工具包,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的Java應(yīng)用程序。JDK是整個(gè)Java開(kāi)發(fā)的核心。