国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java 2 Micro Edition簡介(一)

2019-11-18 14:17:17
字體:
來源:轉載
供稿:網友

?前言:

相信在前幾期RUN!PC上看過筆者文章的朋友們,對于java在手持裝置(如:Palm)或是行動裝置(如:Motorola手機)上的應用應該有一定程度的熟悉了。可是正所謂「見山不是山,見水不是水」,雖然在筆者之前的文章中已經告訴大家如何在這些裝置上撰寫Java程序,不過,CLDC到底是什幺東西呢? MIDP又是啥玩意兒? 相信許多人腦袋里一定布滿許多疑問。假如各位自行到Javasoft網站上查詢有關Java 2 Micro Edition的資料,十之八九會被一大堆的技術名詞搞的一頭霧水。什幺KVM,什幺CLDC、CDC、MIDP,喔喔,后面還冒出了Personal Java、Embedded Java以及JES等名詞。雖然是Java的微小版,可是它的世界可真是不小,足以令人眼花撩亂。

的確,筆者在剛開始接觸Java 2 Micro Edition的時候,就感覺到這個玩意兒實在越看越讓人摸不著頭緒。即使大家都已經明白如何針對Java 2 Micro Edition撰寫程序,但是筆者還是認為,對Java 2 Micro Edition有個巨觀的了解一定會對大家有很大的助益。因此本文將反璞歸真,帶大家從巨觀的角度來看待Java 2 Micro Edition的世界。希望看過本文之后,可以使大家再次體驗「見山是山,見水是水」,一切豁然開朗的感覺。

首先,我們必須先明白Java 2 Micro Edition在整個Java技術之中的定位。

?各種Java版本的定位

使用Java撰寫程序的人都知道,Java規格之中有一組所謂的核心類別(Core Class,即java.* ),在核心類別之外還有所謂的擴充類別(Extended Class,即javax.* )。根據對這兩種類別的支持程度,進而區分出四種不同的Java版本,如下圖所示:




上圖所描述的只是各種不同Java版本所支持之核心類別的范圍,并無法針對這些版本所支持的額外擴充類別座描述。另外,此圖也說明了這些版本所支持的Java基本型別(PRimitive type,即boolean、byte、short、int、long、float、double這些型別)的范圍。同心圓的越外面,所支持的核心類別就越完整。反之位于同心圓內部的Java版本,所支持的就只是核心類別的子集合,而且越往里面,所支持的核心類別子集合就越小。同樣地,越在同心圓的外部,所支持的Java基本型別就越完整,而越在同心圓內部,所支持的Java基本型別就越少。

要理解這個圖,我們必須以Java 2 Standard Edition(J2SE)作為基準,這個版本實做了所有Java標準規格之中所定義的核心類別,也支持所有的Java基本型別。J2SE定位在客戶端程序的應用上。
從J2SE往外延伸,其外頭的同心圓為Java 2 Enterprise Edition(J2EE),此版本除了支持所有的標準核心類別,而且還增加了許多支持企業內部使用的擴充類別,比方說支持Servlet / jsp的javax.servlet.* 類別、支持Enterprise Java Bean的javax.ejb.* 類別。當然J2EE必定支持所有的Java基本型別。J2EE定位在服務器端(server-side)程序的應用上。

從J2SE向內看,首先會看到Java 2 Micro Edition(J2ME),它所支持的只有核心類別的子集合,比方說J2ME CLDC的規格之中,只支持java.lang.*、java.io.*、以及java.util.*這些類別。此版本也增加了一些支持”微小裝置”的擴充類別,如javax.microedition.io.*類別。然而,此版本并不支持所有的Java基本型別,就標準的J2ME CLDC之參考實做,也就是能在PalmOS上執行的KVM(K Virtual Machine)來說,它就不支持屬于浮點數(float、double)的Java基本型別。J2ME定位在嵌入式系統的應用上。

同心圓的最里面,還有一個Java的Smart Card版本,這個部分原本在Java的文件之中并沒有這樣定義,但是以筆者對所有Java版本的了解,將它畫在J2ME內部是很合理的。因為Smart Card版本只支持java.lang.*這個核心類別,比起J2ME所支持的核心類別更少,但它也有屬于自己的擴充類別,如javacard.*、javacardx.*這些類別。Smart Card版本只支持boolean與byte這兩種Java基本型別。就如同其名稱,此版本定位在Smart Card的應用上。

在以上每一種Java版本之中,都有屬于自己的虛擬機器(VM),藉以達成「Write once,run anywhere」的終極目標。在Smart Card上有Card VM,負責執行下載到Smart Card上的Card Applet;在J2ME的世界里,其標準參考實做?KVM,用來執行下載至嵌入式裝置上的Spotlet或MIDlet;在J2SE與J2EE之中,有Classic VM與HotSpot VM負責執行Java Applet、Java Servlet或Java application

HotSpot VM是新一代的JVM,相較之下Classic VM則是傳統的JVM。根據Javasoft的說法,HotSpot VM讓Java程序的執行效率大幅提升。其實HotSpot VM還分成client版與server版。為何要區分成這兩種呢? 其實主要是因為在客戶端執行的應用程序與服務器上所執行的應用程序在基本需求上有所不同,客戶端應用程序比較注重畫面上的美觀、使用者接口的靈敏度;而服務器上執行的應用程序則比較沒有畫面上的需求,因此HotSpot VM的兩種版本就是為了針對不同的需求而分別予以最佳化而產生的結果。



其實以上所述的VM都只是Javasoft根據Java 虛擬機器規格的標準實做,實際上有許多家公司都有自己所開發出來的VM,而且也符合Java 虛擬機器規格,比方說IBM的J9 VM就是一個例子。所以大家千萬別以為JVM只Sun一家,別無分號。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梁山县| 广安市| 那坡县| 镇坪县| 龙口市| 温州市| 曲阜市| 萨迦县| 中江县| 安国市| 四子王旗| 砚山县| 桦甸市| 军事| 米泉市| 邢台市| 建平县| 五寨县| 巴彦县| 聂拉木县| 左贡县| 获嘉县| 乌兰察布市| 蕲春县| 巍山| 台江县| 含山县| 罗江县| 阳春市| 沿河| 呼和浩特市| 东阿县| 怀集县| 海伦市| 颍上县| 涞水县| 汝州市| 阿克| 嘉义县| 筠连县| 枝江市|