<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)行?沒(méi)有計(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)論:
    主站蜘蛛池模板: 亚洲国产日韩在线成人蜜芽| eeuss在线兵区免费观看| 在线亚洲精品自拍| 午夜寂寞在线一级观看免费| 特级无码毛片免费视频尤物| 二级毛片免费观看全程| 亚洲欧洲免费无码| 亚洲精品日韩专区silk| 亚洲熟女一区二区三区| 亚洲精品中文字幕无码A片老| 暖暖日本免费中文字幕| 亚洲欧洲日产国码一级毛片| 久久亚洲精品国产精品婷婷| 亚洲成色www久久网站夜月| 性感美女视频在线观看免费精品 | 亚洲人配人种jizz| 亚洲国产精品人久久| 国产av天堂亚洲国产av天堂| 亚洲av午夜精品一区二区三区| 超pen个人视频国产免费观看| 可以免费看黄的网站| 国产四虎免费精品视频| 免费A级毛片无码专区| 国产一级片免费看| 中文字幕成人免费高清在线 | 天天摸夜夜摸成人免费视频 | 亚洲酒色1314狠狠做| 婷婷亚洲久悠悠色悠在线播放 | 成人久久免费网站| 国产va免费观看| 一个人免费观看日本www视频| 无码免费又爽又高潮喷水的视频| 自拍偷自拍亚洲精品偷一| 天堂亚洲国产中文在线| 亚洲国产精品成人综合色在线| 亚洲成年网站在线观看| 亚洲精品综合在线影院| 亚洲天然素人无码专区| 亚洲精品伦理熟女国产一区二区| 亚洲欧洲国产综合AV无码久久| 亚洲youwu永久无码精品|