Java解釋器的運(yùn)行過程介紹
首先介紹一下Java解釋器的概念,Java解釋器:解釋器是Java虛擬機(jī)非常重要的一部分,它的工作就是把字節(jié)碼轉(zhuǎn)化為機(jī)器碼并在特定的平臺(tái)進(jìn)行運(yùn)行。簡(jiǎn)單一點(diǎn),java的解釋器只是一個(gè)基于虛擬機(jī)JVM平臺(tái)的程序 ,即jdk或jre目錄下bin目錄中的java.exe文件。 Java解釋器相當(dāng)于運(yùn)行Java字節(jié)碼的“CPU”,但該“CPU”不是通過硬件實(shí)現(xiàn)的,而是用軟件實(shí)現(xiàn)的。
- 步驟1:可以通過操作系統(tǒng)設(shè)置,也可不用設(shè)置,一般編譯環(huán)境會(huì)為你設(shè)置,其中CLASSPATH包含一個(gè)或多個(gè)目錄,用來查找.class文件的根目錄。
- 步驟2:需要從根目錄進(jìn)行查詢,解釋器獲取包的名稱,將點(diǎn)號(hào)替換為反斜杠,具體哪種反斜杠視操作系統(tǒng)而定。
- 步驟3:將得到的路徑與CLASSPATH中的各個(gè)不同的項(xiàng)相連接,解釋器就在這些目錄中查找與你創(chuàng)建的類名稱相關(guān)的.class文件。
舉例:假設(shè)根據(jù)java環(huán)境設(shè)置,CLASSPATH變量為下面幾種:
- C:\Program Files\Java\jre1.8.0_102\lib;
- C:\Program Files\Java\jre1.8.0_102\lib\tools.jar;
- E:\JAVA學(xué)習(xí)\JavaProject\JavaStudy\bin
然后從這些目錄中查找.class
文件,比如說要找MyClass.class
,此時(shí),先獲取包名net.mindview.util
,將該包名替換成net\mindview\util
,再將替換后的包名與CLASSPATH
中的路徑連接,形成一些查找路徑,如下:
路徑1:C:\Program Files\Java\jre1.8.0_102\lib\net\mindview\util
路徑2:C:\Program Files\Java\jre1.8.0_102\lib\tools.jar\net\mindview\util
路徑3:E:\JAVA學(xué)習(xí)\JavaProject\JavaStudy\bin\net\mindview\util
前兩條路徑不存在,第三條路徑存在,成功找到MyClass.class
,至此,解釋器查找成功。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- Java基于解釋器模式實(shí)現(xiàn)定義一種簡(jiǎn)單的語言功能示例
- 23種設(shè)計(jì)模式(15)java解釋器模式
- Java設(shè)計(jì)模式之解釋器模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- Java設(shè)計(jì)模式編程之解釋器模式的簡(jiǎn)單講解
- 解析Java的設(shè)計(jì)模式編程之解釋器模式的運(yùn)用
- JAVA設(shè)計(jì)模式之解釋器模式詳解
- Java為什么基本數(shù)據(jù)類型不需要進(jìn)行創(chuàng)建對(duì)象?
- 如何理解Java中基類子對(duì)象的構(gòu)建過程從"基類向外"進(jìn)行擴(kuò)散的?
- Java關(guān)于含有繼承類的成員初始化過程講解
- Java接口名稱沖突問題的講解
相關(guān)文章
基于Java SSM框架開發(fā)圖書借閱系統(tǒng)源代碼
本文給大家介紹了基于Java SSM框架開發(fā)圖書借閱系統(tǒng),開發(fā)環(huán)境基于idea2020+mysql數(shù)據(jù)庫,前端框架使用bootstrap4框架,完美了實(shí)現(xiàn)圖書借閱系統(tǒng),喜歡的朋友快來體驗(yàn)吧2021-05-05Spring?Boot中使用Spring?Retry重試框架的操作方法
這篇文章主要介紹了Spring?Retry?在SpringBoot?中的應(yīng)用,介紹了RetryTemplate配置的時(shí)候,需要設(shè)置的重試策略和退避策略,需要的朋友可以參考下2022-04-04解析Java中的Timer和TimerTask在Android中的用法和實(shí)例
本篇文章主要介紹了解析Java中的Timer和TimerTask在Android中的用法,主要介紹了Timer和TimerTask的用法,有需要的可以了解一下。2016-11-11Nacos?動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺(tái)初體驗(yàn)
這篇文章主要介紹了Nacos?動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺(tái)初體驗(yàn)的相關(guān)資料,需要的朋友可以參考下2022-09-09MyBatis實(shí)現(xiàn)插入大量數(shù)據(jù)方法詳解
最近在公司項(xiàng)目開發(fā)中遇到批量數(shù)據(jù)插入或者更新,下面這篇文章主要給大家介紹了關(guān)于MyBatis實(shí)現(xiàn)批量插入的相關(guān)資料,需要的朋友可以參考下2022-11-11springboot整合mybatis-plus 實(shí)現(xiàn)分頁查詢功能
這篇文章主要介紹了springboot整合mybatis-plus 實(shí)現(xiàn)分頁查詢功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09