[size=small][color=orange]CLDC 詳解:
CLDC 是第一個面向移動裝置大的JAVA 應用開發規範,也是J2ME核心配置中的一個,可以支援一個或多個簡表,其目标主要面向小型的,網絡連接配接有限的裝置,如:手機,機頂盒,PDA速度慢,能源有限且資源等;
CLDC包括了兩個部分:虛拟機和核心類庫;
虛拟機:運作在裝置的作業系統之上,對下層的硬體提供必要的相容和支援
核心類庫:作業系統所需的最小的軟體需求;
CLDC包含的功能:
* Java 核心語言與Java虛拟機的特性
* 核心JAVA 類庫
* 輸入/輸出
* 對網絡的支援
* 對安全性的支援
* 對國際化的支援
CLDC 不包含的功能:
* 對應用程式生命周期的管理
* 使用者界面
* 事件處理
* 進階應用程式模式
CLDC 的虛拟機----KVM
KVM 裝置一般隻有有限的記憶體空間和處理能力,KVM 使用C 重新編寫(即:它不是現有的JAVA 虛拟機改進産品),另外,KVM 是子產品化的,即:它是由子產品建構的;
注:當每個子產品實作了預先設定的目标後,就可以很友善的将這一子產品解除安裝,以便節約寶貴的記憶體資源;
-------------标記清掃算法----------
問:什麼是KVM?
KVM 不包含以下特性:
* 不支援浮點資料類型(Float 和double)
* 不支援JAVA 本地接口 java native interface
* 不支援用于自定義的Java級地類載入器
* 不支援反射(reflection)
* 不支援類的執行個體終結
* 不支援弱引用
* 有限的錯誤處理
問:什麼是類載入器?反射?執行個體終結?弱引用?有限的錯誤處理?
CLDC中類的預稽核機制:
* J2SE 提供了位元組碼的稽核機制用于檢查類檔案的完整性。該稽核機制是在編譯時進行的,其目的是確定類檔案中不包含可能破壞系統安全或Java 語言規範的惡意代碼
* 所有本地變量在使用前必須初始化
* 在構造對象時,其構造函數必須在該對象被使用前調用;
* 每個對象的構造方法都必須調用父類的構造方法;
* 本地變量,執行個體和靜态成員在聲明時指明的對象類型必須與實際指派的對象類型一緻;
CLDC 的類庫:
* 絕大部分虛拟機不支援的錯誤類和部分異常被去掉了
* 不支援float 和double 資料類型及相應的類
* 設有ClassLoader ,SecurityManager 等CLDC規範上沒有說明必須支援的 類;
* CLDC支援的資料類型:boolean,byte,char,integer,long,short,String
MIDP 移動資訊裝置簡表:
* 軟體系統的最小需求假設;
* 用于控制底層硬體的最小核心。這個核心必須提供至少一個可運作實體去運作的虛拟機。核心不需要支援獨立的位址空間,也不需要保證任何實時功能。
* 對非易失存儲器進行讀寫的機制。
* 對無網絡的讀寫通路,以便提供API支援
* 定時機制,提供儲存記錄的時間戳
* 基本顯示位圖的能力
* 能控制應用程式生命周期的機制
MIDP API 的範圍:
* 應用程式模型
* 使用者界面支援
* 網絡支援
* 持久化存儲支援
* 聲音
* 2D遊戲
* 通過HTTPS 和安全套接字的端對端的安全性
* MIDP簽名模型提供的附加安全性;
* 應用程式的遞送和安裝; [/color][/size]