實現 Java 平臺的三種方式(轉)
實現 Java 平臺的三種方式(轉)[@more@]實現 Java 平臺的三種方式
廣泛地說,只要能執行 Java bytecode 者,就可以稱為 Java 平臺(Java platform)。大致上,實現 Java 平臺的方式有三種,分別是:
Java 虛擬機器(Java Virtual Machine,JVM)
Java 作業系統(Java Operating System)
Java 晶片(Java Chip)
以下就此三種 Java 平臺提出解說,並比較之。
Java 虛擬機器
所謂的 Java 虛擬機器,指的是在作業系統上執行的一種程式,此程式可以解讀 Java bytecode,並在作業系統的幫助下執行 Java bytecode。這樣的執行架構,大致上可以分成四層,分別是:
第一層(最上層)的 Java bytecode
第二層的 Java 虛擬機器
第三層的作業系統
第四層(最底層)的晶片
晶片執行上面的作業系統,作業系統執行上面的 Java 虛擬機器,Java 虛擬機器執行上面的 Java bytecode。對於 Java bytecode 來說,它只接觸到 Java 虛擬機器,所以當然「誤以為」Java 虛擬機器就是它的平臺。
例項:Pentium III Chip + Windows 2000 OS + Sun HotSpot Client VM + Together/ Java Application。
Java 作業系統
如果把 Java 虛擬機器整合進既有的作業系統中(例如:Mac OS X),或是打造一個全新的作業系統專門執行 Java bytecode(例如:JOS),這類能直接執行 Java bytecode 的作業系統也可視為 Java 平臺。這樣的執行架構,大致上可以分成三層,分別是:
第一層(最上層)的 Java bytecode
第二層的 Java 作業系統
第三層(最底層)的晶片
Java 晶片
如果把 Java 作業系統和既有的晶片整合起來成為一組新的晶片(例如:ARM 7、ARM 9),或者打造一個全新的 Java 專用晶片(例如:aJile aJ-100)那麼此一種類的晶片也是 Java 平臺。這樣的執行架構,大致上可以分成兩層,分別是:
第一層(最上層)的 Java bytecode
第二層(最底層)的 Java 晶片
三種方式的比較
這三種都是 Java 平臺,各有優缺點,很難說那一種方式比較好,必須看你的需求而定。
透過虛擬機器來執行 Java 是最常見的架構方式,一方面是因為虛擬機器的 Java 平臺最容易被實作出來(相較於 Java 作業系統和 Java 晶片而言),二方面是因為只要有虛擬機器就可以讓在不更動實體平臺(作業系統和 CPU)的情況下多了執行 Java 程式的功能。目前,多數主流的實體平臺(包括 Windows、Linux、Mac、Solaris、PalmOS、EPOC...)都已經有 Java 虛擬機器了。
虛擬機器的架構因為分了太多層級,所以效率上當然會比較差,這是虛擬機器架構最為人所抨擊的地方。但是由於虛擬機器的技術一直在進步,所以執行效率一直都有持續的提升。目前已經相當逼近 Java 作業系統的架構方式,所以虛擬機器的方式應該會繼續成為 PC 上的 Java 平臺主流。
一般來說,透過 Java 作業系統來執行 Java bytecode,效率會比虛擬機器的方式好。所以 Java 虛擬機器被整合進作業系統中,來提升該作業系統的附加價值,這種作法有可能會成為一種趨勢(例如 MacOS X 就把 Java 和作業系統作了很好的整合)。但如果設計一套只能執行 Java 的全新作業系統,可能不容易成功,因為全新的作業系統勢必面臨驅動程式(device driver)不足的嚴重困擾。因為此原因,加上事實證明作業系統的 Java 平臺,比虛擬機器的 Java 平臺效率提升不如預期多,所以 IBM 和 Sun 合作的純 Java 作業系統「JavaOS」計畫已經停擺。
利用晶片的方式來實作 Java 平臺,對於 Java 程式的執行速度會有很大的提升,畢竟硬體的速度比軟體快許多。這種方式以後會成為嵌入式系統的主流,許多 Java 的 IA 產品(例如:Set-Top Box)都會開始使用 Java 晶片。但是這種方式已經把 Java 整個變成硬體平臺,不適合再稱為跨平臺了。
廣泛地說,只要能執行 Java bytecode 者,就可以稱為 Java 平臺(Java platform)。大致上,實現 Java 平臺的方式有三種,分別是:
Java 虛擬機器(Java Virtual Machine,JVM)
Java 作業系統(Java Operating System)
Java 晶片(Java Chip)
以下就此三種 Java 平臺提出解說,並比較之。
Java 虛擬機器
所謂的 Java 虛擬機器,指的是在作業系統上執行的一種程式,此程式可以解讀 Java bytecode,並在作業系統的幫助下執行 Java bytecode。這樣的執行架構,大致上可以分成四層,分別是:
第一層(最上層)的 Java bytecode
第二層的 Java 虛擬機器
第三層的作業系統
第四層(最底層)的晶片
晶片執行上面的作業系統,作業系統執行上面的 Java 虛擬機器,Java 虛擬機器執行上面的 Java bytecode。對於 Java bytecode 來說,它只接觸到 Java 虛擬機器,所以當然「誤以為」Java 虛擬機器就是它的平臺。
例項:Pentium III Chip + Windows 2000 OS + Sun HotSpot Client VM + Together/ Java Application。
Java 作業系統
如果把 Java 虛擬機器整合進既有的作業系統中(例如:Mac OS X),或是打造一個全新的作業系統專門執行 Java bytecode(例如:JOS),這類能直接執行 Java bytecode 的作業系統也可視為 Java 平臺。這樣的執行架構,大致上可以分成三層,分別是:
第一層(最上層)的 Java bytecode
第二層的 Java 作業系統
第三層(最底層)的晶片
Java 晶片
如果把 Java 作業系統和既有的晶片整合起來成為一組新的晶片(例如:ARM 7、ARM 9),或者打造一個全新的 Java 專用晶片(例如:aJile aJ-100)那麼此一種類的晶片也是 Java 平臺。這樣的執行架構,大致上可以分成兩層,分別是:
第一層(最上層)的 Java bytecode
第二層(最底層)的 Java 晶片
三種方式的比較
這三種都是 Java 平臺,各有優缺點,很難說那一種方式比較好,必須看你的需求而定。
透過虛擬機器來執行 Java 是最常見的架構方式,一方面是因為虛擬機器的 Java 平臺最容易被實作出來(相較於 Java 作業系統和 Java 晶片而言),二方面是因為只要有虛擬機器就可以讓在不更動實體平臺(作業系統和 CPU)的情況下多了執行 Java 程式的功能。目前,多數主流的實體平臺(包括 Windows、Linux、Mac、Solaris、PalmOS、EPOC...)都已經有 Java 虛擬機器了。
虛擬機器的架構因為分了太多層級,所以效率上當然會比較差,這是虛擬機器架構最為人所抨擊的地方。但是由於虛擬機器的技術一直在進步,所以執行效率一直都有持續的提升。目前已經相當逼近 Java 作業系統的架構方式,所以虛擬機器的方式應該會繼續成為 PC 上的 Java 平臺主流。
一般來說,透過 Java 作業系統來執行 Java bytecode,效率會比虛擬機器的方式好。所以 Java 虛擬機器被整合進作業系統中,來提升該作業系統的附加價值,這種作法有可能會成為一種趨勢(例如 MacOS X 就把 Java 和作業系統作了很好的整合)。但如果設計一套只能執行 Java 的全新作業系統,可能不容易成功,因為全新的作業系統勢必面臨驅動程式(device driver)不足的嚴重困擾。因為此原因,加上事實證明作業系統的 Java 平臺,比虛擬機器的 Java 平臺效率提升不如預期多,所以 IBM 和 Sun 合作的純 Java 作業系統「JavaOS」計畫已經停擺。
利用晶片的方式來實作 Java 平臺,對於 Java 程式的執行速度會有很大的提升,畢竟硬體的速度比軟體快許多。這種方式以後會成為嵌入式系統的主流,許多 Java 的 IA 產品(例如:Set-Top Box)都會開始使用 Java 晶片。但是這種方式已經把 Java 整個變成硬體平臺,不適合再稱為跨平臺了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-960318/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java中Elasticsearch 實現分頁方式(三種方式)JavaElasticsearch
- Java實現多執行緒的三種方式Java執行緒
- Java中Singleton的三種實現方式解析Java
- 三種Singleton的實現方式
- vue中實現路由跳轉的三種方式(精選)Vue路由
- springAOP的三種實現方式Spring
- js實現繼承的三種方式JS繼承
- java執行緒實現的三種方式以及靜態代理Java執行緒
- Java Singleton的3種實現方式Java
- AOP的四種主要Java實現方式Java
- java幾種代理模式的實現方式Java模式
- 實現圖片染色效果的三種方式
- Go定時器的三種實現方式Go定時器
- 單點登入的三種實現方式
- 跨平臺程式碼三種組織方式詳解
- 單例模式的各種實現方式(Java)單例模式Java
- Java細粒度鎖實現的3種方式Java
- PHP 三種方式實現鏈式操作PHP
- python 三種方式實現截圖Python
- 實現ABAP條件斷點的三種方式斷點
- 三欄式佈局的幾種實現方式
- 前端實現文字跑馬燈的三種方式前端
- 實現布隆過濾器的三種方式過濾器
- 實現圖片懶載入的三種方式
- php 遞迴函式的三種實現方式PHP遞迴函式
- Java 反射機制的三種方式Java反射
- 五種方式實現 Java 單例模式Java單例模式
- java定時任務實現的幾種方式Java
- Java實現檔案複製的四種方式Java
- 使用Vue實現圖片上傳的三種方式Vue
- 實現 ABAP 條件斷點的三種方式分享斷點
- Javascript 中實現物件原型繼承的三種方式JavaScript物件原型繼承
- C#實現的三種方式實現模擬鍵盤按鍵C#
- [JAVA] 初識Java 和 Java的跨平臺實現原理Java
- 通過三個DEMO學會SignalR的三種實現方式SignalR
- [轉]:多程式等待的跨平臺實現
- Java建立多執行緒的幾種方式實現Java執行緒
- HTML轉換到PDF的三種方式HTML