正 文

J2ME(CLDC/MIDP)简介


www.7dspace.com  更新日期:2006-2-20 2:35:02  七度空间


对于Java语言支持的特殊方面

CLDC总的来说是与Java语言完全兼容的,但需注意以下几点:

不支持浮点数据类型(即没有float和double)(这实际上主要是由于CLDC所面向的设备,其硬件因其内存限制或是基于安全性的考虑不支持浮点运算)

不支持类实例(class instance)的终结(finalization),即不存Object.finalize()方法。(注:finalization指的是java中提供的有别与garbage collection的另外的一种对象清理方法。具体可参看侯捷老师译的Bruce Eckel的《Thinking in Java 第二版》,可以在www.jjhou.com中下载)

有限的错误处理,即大部分Java.lang.Error的子类都未被支持。与此相反,CLDC包括了相当完备的异常(exception)类。

对于Java虚拟机(Java Virtual Machine)支持的特殊的方面

实质上CLDC在其严格的内存限制下达到了对Java虚拟机相当程度的兼容性。不过还是有下列不同点:

  • 不支持浮点数据类型(没有float和double)
  • 不支持JNI (the Java Native Interface )不支持用户自定义的Java级的类载入器(class loaders )
  • 没有反射(reflection)特性(注:reflection指java通过java.lang.reflect提供的,可以对类的能力进行分析的功能。常用来对类的结构进行检查,在JavaBeans上有广泛运用可参见Gary Cornell的Core Java2 volumeI,II,机工有出中译本)
  • 不支持线程组(thread groups)或守护线程(daemon threads)
  • 不支持类实例(class instance)的终结(finalization)
  • 没有弱参考(weak references)(注:weak reference提供了一种解决指向已经被garbage collector清除的对象的方法。在Java2中被介绍。具体请参考java.lang.ref API 文档,和sun网站上关于Reference Objects和Garbage Collection的文章。)
  • 有限的错误处理(error handling)

类文件审核过程(classfiles Verification)

CLDC要求其下层的虚拟机能够辨别并拒绝非法的class文件。但由于CLDC本身面向小内存消耗的小型设备这一前提。其类文件检测机制与J2SE中定义的标准类文件审核机制还有所不同。请注意看下图:

图3 CLDC的类审核机制

请注意上图所示CLDC中的预审核(preverification)过程。这是CLDC区别于通常的类文件审核过程的关键。如上图所示,当源程序被编译后,必须被预审核器预审核,然后才能被下载到目标设备上去。之所以有这一步骤,主要是为了减轻KVM中审核器的负担,加快审核速度。就像我前文提到的,这是出于对CLDC支持的硬件的考虑(毕竟手机和PDA并没有我们PC机那样奔腾的“芯”呀!^-^)。这里记住这个概念就行了。具体的操作方法我会在以后讲述编写MIDlet程序时介绍。

9页,页码:[1] [2] [3] [4] [5] [6] [7] [8] [9] 

上一篇:C#与Java之争
下一篇:给你的Java应用程序加上日志功能
标题:J2ME(CLDC/MIDP)简介 作者: 来源:Java研究组织
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐