<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)論:
    主站蜘蛛池模板: 亚洲处破女AV日韩精品| 九九美女网站免费| 久久国产精品免费| 国产亚洲情侣一区二区无码AV| 1024免费福利永久观看网站| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲理论片中文字幕电影| 亚洲日韩av无码| 免费人成网站在线高清| 毛片网站免费在线观看| 污污免费在线观看| 中文日韩亚洲欧美制服| 亚洲精品视频在线观看视频| 亚洲人成色7777在线观看| 亚洲国产精品碰碰| 免费无码又爽又刺激高潮| 九九精品免费视频| 222www免费视频| 三年片在线观看免费大全电影 | 在线免费观看亚洲| 手机看片国产免费永久| 一级免费黄色大片| 亚洲免费闲人蜜桃| 亚洲国产成人五月综合网| 免费高清在线爱做视频| 免费做爰猛烈吃奶摸视频在线观看 | 亚洲日韩精品无码AV海量| 亚洲精品在线播放| 久久精品九九亚洲精品| 免费一级毛片在线播放| 国产精品国产午夜免费福利看| 在线观看人成网站深夜免费| 久久精品网站免费观看| 久久久久久99av无码免费网站| 亚洲高清视频免费| 国产啪精品视频网免费| 欧美最猛性xxxxx免费| 成年女人男人免费视频播放| 午夜私人影院免费体验区| 国产乱色精品成人免费视频| 四虎影永久在线高清免费|