为了确保与其他Java平台的兼容性,绝大多数的CLDC类库是从J2SE和J2EE中继承的,是J2SE和J2EE的子集。由于目标设备的特殊性,CLDC类库在安全、输入/输出、用户界面、网络和存储管理等方面没有全部使用J2SE的实现;其中的部分类库CLDC进行了重写,如网络连接。
如2.2.3中所介绍的,CLDC的类库可以分为两种:一种是从J2SE标准类库中继承的;另一种是专门为CLDC设计的(这部分类也可以被映射到J2SE中)。
对于第一种CLDC类库,包括了J2SE的3个最核心的包java.io、java.lang和java.util。而且这3个包和J2SE相比,也只是J2SE相应包的一个很小的子集。例如java.util的类与接口由J2SE中的53个减少到10个。
对于后一种CLDC类库,只有描述标准连接框架的javax.microedition.io包,和MIDP中定义的包一起放于javax.microedition包中。
2.4.1 java.lang包
java.lang包包含了Java语言API的核心部分继承下来的类,但是CLDC只继承了J2SE中一半的类,而且一些类中的接口并没有完全实现。这主要表现在:
1)绝大部分的虚拟机不支持错误类和部分异常类被去掉了。
2)不支持Float和Double数据类型及其相应的类
3)ClassLoader、SecurityManager等CLDC规范上没有说明必须支持的类也不在此包中。