<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)論:
    主站蜘蛛池模板: 国产亚洲国产bv网站在线| 天堂亚洲免费视频| 亚洲最大的黄色网| 亚洲视频免费在线看| 亚洲精品无码成人片在线观看 | 亚洲高清乱码午夜电影网| 特级做A爰片毛片免费看无码 | 久久久久亚洲AV无码专区网站| 亚洲一区在线免费观看| jizz日本免费| 日本免费v片一二三区| 亚洲熟妇色自偷自拍另类| 香蕉视频在线免费看| 午夜小视频免费观看| 亚洲美免无码中文字幕在线| 在线免费视频你懂的| 亚洲色无码专区在线观看| 美女被暴羞羞免费视频| 我要看免费的毛片| 亚洲精品国产成人| 一本无码人妻在中文字幕免费 | 亚洲乱码在线卡一卡二卡新区| 久久狠狠躁免费观看2020| 亚洲中文字幕在线乱码| 日日躁狠狠躁狠狠爱免费视频| 亚洲欭美日韩颜射在线二| 小草在线看片免费人成视久网| 亚洲精品无码鲁网中文电影| 日韩a毛片免费观看| 国产嫩草影院精品免费网址| 国产精品亚洲四区在线观看 | 一级毛片a免费播放王色电影| 亚洲精品卡2卡3卡4卡5卡区| 222www免费视频| 国产精品亚洲二区在线| 四虎影视永久免费观看网址| 亚洲av无码一区二区三区人妖| 韩国免费三片在线视频| 男女拍拍拍免费视频网站| 亚洲三级中文字幕| 国产精品亚洲综合一区|