<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-88  評(píng)論-77  文章-48  trackbacks-0

    凡是接觸過(guò) Java 的人都知道 JRE 的概念,即 Java 運(yùn)行時(shí)環(huán)境( Java Runtime Environment ),因?yàn)樗沁\(yùn)行 Java 程序必不可少的(除非程序用 GCJ 等編譯,但我懷疑這樣處理后還能不能稱之為“ Java 程序”了)。

    Java 喊出的帶有標(biāo)志性的口號(hào)“ Write Once Run Anywhere (一次編寫,到處運(yùn)行)”(記得某老師給俺們上課講到這里時(shí)還不忘幽一默:到處運(yùn)行?沒有計(jì)算機(jī)就運(yùn)行不了……),正是建立在 JRE 的基礎(chǔ)之上。何以實(shí)現(xiàn)?就是在 Java 應(yīng)用程序和操作系統(tǒng)之間增加了一虛擬層—— JRE 。程序源代碼不是直接編譯、鏈接成機(jī)器代碼,而是先轉(zhuǎn)化到字節(jié)碼( bytecode )這種特殊的中間形式,字節(jié)碼再轉(zhuǎn)換成機(jī)器碼或系統(tǒng)調(diào)用。前者是傳統(tǒng)的編譯方法,生成的機(jī)器代碼就不可避免地跟特殊的操作系統(tǒng)和特殊的機(jī)器結(jié)構(gòu)相關(guān),很多裝雙系統(tǒng)的用戶無(wú)法在 Linux 運(yùn)行 Windows 下的大型游戲,心里那個(gè)郁悶(于是很多虛擬軟件和模擬程序應(yīng)運(yùn)而生)。而 Java 程序的字節(jié)碼文件可以放到任意裝有 JRE 的計(jì)算機(jī)運(yùn)行,再由不同 JRE 的將它們轉(zhuǎn)化成相應(yīng)的機(jī)器代碼,這就實(shí)現(xiàn)了 Java 程序的可移植性。這樣程序員也不用去關(guān)心程序運(yùn)行的具體環(huán)境,而可以專心編寫軟件。這種分層抽象、隱藏細(xì)節(jié)的思想在計(jì)算機(jī)科學(xué)中處處可見,比如機(jī)器組織結(jié)構(gòu)的設(shè)計(jì)、網(wǎng)絡(luò)協(xié)議的實(shí)現(xiàn)等。 Pascal 語(yǔ)言的發(fā)明者 Niklaus Wirth ,就富有預(yù)見性地指出應(yīng)該有這樣一種可移植的語(yǔ)言,其生成的中間代碼可以在一臺(tái)假想的機(jī)器( a hypothetical machine )上運(yùn)行。而 Java 虛擬機(jī)( Java virtual machine JVM )就是這樣的一臺(tái)機(jī)器,它模擬實(shí)際處理器的結(jié)構(gòu),解釋字節(jié)碼。怎么一會(huì)說(shuō)是 JRE ,一會(huì)兒又成了 JVM ,兩者是否同物不同名?

    回答是否定的。

    JVM Java 平臺(tái)的基礎(chǔ),和實(shí)際的機(jī)器一樣,它也有自己的指令集,并且在運(yùn)行時(shí)操作不同的內(nèi)存區(qū)域。 JVM 通過(guò)抽象操作系統(tǒng)和 CPU 結(jié)構(gòu),提供了一種與平臺(tái)無(wú)關(guān)的代碼執(zhí)行方法,即與特殊的實(shí)現(xiàn)方法、主機(jī)硬件、主機(jī)操作系統(tǒng)無(wú)關(guān)。但是在一些小的方面, JVM 的實(shí)現(xiàn)也是互不相同的,比如垃圾回收算法,線程調(diào)度算法(可能不同 OS 有不同的實(shí)現(xiàn))。 JVM 的主要工作是解釋自己的指令集(即字節(jié)碼)到 CPU 的指令集或 OS 的系統(tǒng)調(diào)用,保護(hù)用戶免被惡意程序騷擾。 JVM 對(duì)上層的 Java 源文件是不關(guān)心的,它關(guān)注的只是由源文件生成的類文件( class file )。類文件的組成包括 JVM 指令集,符號(hào)表以及一些補(bǔ)助信息。

    JRE Sun 公司發(fā)布的一個(gè)更大的系統(tǒng),它里面就有一個(gè) JVM JRE 就與具體的 CPU 結(jié)構(gòu)和操作系統(tǒng)有關(guān),我們從 Sun 下載 JRE 的時(shí)候就看到了不同的各種版本。同 JVM 一起組成 JRE 的還有一些 API (如 awt swing 等)。 JRE 是運(yùn)行 Java 程序必不可少的。

    Over


    posted on 2006-05-22 22:30 崛起的程序員 閱讀(713) 評(píng)論(1)  編輯  收藏 所屬分類: 載選文章

    評(píng)論:
    主站蜘蛛池模板: 亚洲va中文字幕| 国产精品亚洲综合久久 | 亚洲熟妇无码久久精品| 一级有奶水毛片免费看| 中文字幕亚洲综合久久男男| 一区二区免费国产在线观看| 亚洲精品456播放| 免费人人潮人人爽一区二区 | 黄页网站在线观看免费高清| 国产成人精品亚洲2020| 在线看片无码永久免费视频| 亚洲熟妇AV一区二区三区浪潮| 四虎影视大全免费入口| 美女啪啪网站又黄又免费| 亚洲精品乱码久久久久久不卡| 一级特黄aaa大片免费看| 伊人久久大香线蕉亚洲五月天| baoyu777永久免费视频| 亚洲国产精品国自产电影| 最近中文字幕国语免费完整| 亚洲综合色7777情网站777| 女人被男人躁的女爽免费视频 | 亚洲深深色噜噜狠狠爱网站| 亚洲午夜AV无码专区在线播放| 日本高清免费中文在线看| 亚洲欧洲国产精品香蕉网| 99精品视频在线视频免费观看 | 精品在线视频免费| 日本亚洲欧洲免费天堂午夜看片女人员| 日本免费电影一区二区| 全亚洲最新黄色特级网站| 99免费精品视频| 456亚洲人成影院在线观| 亚洲国产精品无码久久九九| 免费一级不卡毛片| 久久亚洲国产最新网站| 亚洲综合最新无码专区| 亚洲大片免费观看| 无人视频免费观看免费视频| 亚洲理论片在线观看| 亚洲综合激情另类专区|