j2me的基本介紹⑶

字號(hào):

4。深入理解CLDC
     本節(jié)的部分內(nèi)容譯自J2ME White Paper,比較枯燥,但請(qǐng)記住,畢竟,正確的觀念重于 一切。
    CLDC的目的
     ·為小型的,且資源有限,Connected Limited的設(shè)備定義一個(gè)標(biāo)準(zhǔn)的Java平臺(tái)。
     ·允許動(dòng)態(tài)的向這些設(shè)備發(fā)布內(nèi)容與應(yīng)用程序。
     ·方便第三方軟件廠商與開(kāi)發(fā)者向這些設(shè)備移植內(nèi)容與應(yīng)用程序。
    CLDC的范圍
     ·Java語(yǔ)言與虛擬機(jī)的特性
     ·核心Java類庫(kù)(如java.lang.*, java.util.*)
     ·輸入/輸出
     ·對(duì)網(wǎng)絡(luò)的支持
     ·對(duì)安全性的支持
     ·對(duì)國(guó)際化的支持
    CLDC不包括的范圍(即由MIDP解決的)
     ·對(duì)應(yīng)用程序life-cycle的管理(就是指一個(gè)應(yīng)用程序是如何安裝,運(yùn)行,刪除的)
     ·UI界面(User Interface)
     ·Event處理
     ·高級(jí)應(yīng)用程序模式(這里指用戶與應(yīng)用程序的交互)。
    CLDC的安全性
     低端的基于虛擬機(jī)的安全性由下載時(shí)對(duì)class文件的審核(verification)步驟來(lái)保證 。(如果你寫(xiě)過(guò)并編譯過(guò)MIDlet程序,就會(huì)知道這一步是必須的。這里有一個(gè)概念就行了, 我會(huì)在以后講述如何創(chuàng)建MIDlet程序時(shí),詳細(xì)介紹具體的步驟)。
     基于應(yīng)用程序的安全性通過(guò)使每個(gè)應(yīng)用程序分別運(yùn)行在相對(duì)獨(dú)立的封閉環(huán)境中來(lái)保證并且處于被保護(hù)的系統(tǒng)package中的類不能被應(yīng)用程序重載(overridded)。
    對(duì)于Java語(yǔ)言支持的特殊的方面
     CLDC總的來(lái)說(shuō)是與Java語(yǔ)言完全兼容的,但需注意以下幾點(diǎn):
     不支持浮點(diǎn)數(shù)據(jù)類型(即沒(méi)有float和double)(這實(shí)際上主要是由于CLDC所面向的設(shè)備,其硬件因其內(nèi)存限制或是基于安全性的考慮不支持浮點(diǎn)運(yùn)算)
     不支持類實(shí)例(class instance)的終結(jié)(finalization),即不存Object.finalize()方法。(注:finalization指的是java中提供的有別與garbage collection的另外的一種對(duì)象清理方法。具體可參看侯捷老師譯的Bruce Eckel的《Thinking in Java 第二版》,可以在www.jjhou.com中下載)
     有限的錯(cuò)誤處理,即大部分Java.lang.Error的子類都未被支持。與此相反,CLDC包括了相當(dāng)完備的異常(exception)類。
    對(duì)于Java虛擬機(jī)(Java Virtual Machine)支持的特殊的方面
     實(shí)質(zhì)上CLDC在其嚴(yán)格的內(nèi)存限制下達(dá)到了對(duì)Java虛擬機(jī)相當(dāng)程度的兼容性。不過(guò)還是有下列不同點(diǎn)。
     ·不支持浮點(diǎn)數(shù)據(jù)類型(沒(méi)有float和double)
     ·不支持JNI (the Java Native Interface )
     ·不支持用戶自定義的Java級(jí)的類載入器(class loaders )
     ·沒(méi)有反射(reflection)特性(注:reflection指java通過(guò)java.lang.reflect提供的,可以對(duì)類的能力進(jìn)行分析的功能。常用來(lái)對(duì)類的結(jié)構(gòu)進(jìn)行檢查,在JavaBeans上有廣泛運(yùn)用可參見(jiàn)Gary Cornell的Core Java2 volumeI,II,機(jī)工有出中譯本)
     ·不支持線程組(thread groups)或守護(hù)線程(daemon threads)
     ·不支持類實(shí)例(class instance)的終結(jié)(finalization)
     ·沒(méi)有弱參考(weak references)(注:weak reference提供了一種解決指向已經(jīng)被garbage collector清除的對(duì)象的方法。在Java2中被介紹。具體請(qǐng)參考java.lang.ref API
    文檔,和sun網(wǎng)站上關(guān)于Reference Objects和Garbage Collection的文章。)
     ·有限的錯(cuò)誤處理(error handling)