如果列出已经将Java语言移植进去的所有硬件和操作系统的话,这张列表将会长得令人惊叹不已,因而不要再诧异于快速涌现出的那么多开始趋向支持Java模型的手持设备。将Java移植到小型设备上恰好提出了一种挑战,它已经使Java的足迹开始进入到一个全新的境界,任何将Java 2标准版(J2SE)或者Java 2企业版(J2EE)应用到小型设备上的想法都已经完全不成问题了。
  那么,应该怎么将Java移植到小型设备上呢?你的第一种想法可能是,缩减所有对小型设备来说并不急切需要的功能。但是这样一来会显著地降低Java的功能覆盖,而且未必有助于问题的解决。解决创建这样一个Java的更小版本的问题实质上就是——创建一个Java的更小版本。与其想通过限制已有平台的类型来解决该问题,不如借用J2SE中合适的东西脚踏实地从基础做起,正是这种努力导致了称为Java 2缩微版也称J2ME(Java 2 Micro Edition)的Java 2的新版本的出现。
  现在,在你急切地想去寻找J2ME软件以使你能下载它之前,你首先应该知道J2ME并不是一种产品,而是一种技术,J2ME包括两种类型的组件,即配置(configuration)和描述(profile)。
  配置(configuration)是一系列低层次的API(应用编程接口)和一种为该族设备优化的虚拟机。今天在用的一般配置有两种,连接的设备配置(CDC)和限制连接的设备配置(CLDC)。
  CDC提供了一种虚拟机,以及支持像灵敏发报机、寻呼机、个人数字助理(PDA)和电视机顶盒这样的设备上的Java应用的基类库。这些设备的典型特征是具有一个32位的处理器和用来支持虚拟机和类库的超过2MB存储容量。CVM虚拟机正好满足了它们对于Java 2虚拟机特征集的功能需求。这是在小型平台上全特征的虚拟机。
  CLDC提供一个适合于小型的、资源受限的、连接的设备上使用的标准Java平台。这些设备的典型特征是具有一个16位或者32位的处理器和用来支持虚拟机和类库的160KB到512KB的总内存,它们通常以电池作为电源,并联入某类网络中,联网一般使用带宽时常小于9600bps的无线的、断断续续的连接方式。CLDC的核心是K虚拟机(KVM)。“K”标记反映了它们的大小是以kilobytes(千字节)衡量的这一事实。CLDC的特征也是包含一系列类库。
  描述(profile)是一种说明,它详细描述了架构在配置之上并使用配置的一系列API。描述的一个例子是创建在CDC之上的基础描述(Foundation Profile),它为以像住宅网关、灵敏电话和双向寻呼机这样的设备为目标的应用提供完整的J2ME运行时环境。另一种描述是移动信息设备描述(MIDP),它构建在CLDC之上,为那些运行在像移动电话和登录级PDA这样的设备上的应用提供完整的J2ME运行时环境。MIDP致力于解决像用户界面、持久存储、联网和应用程序生命周期这样的问题。