CLDC API简要介绍
*介绍
迄今为止,我们知道CLDC比较适合J2ME,并且也已经建立了我们的开发环境。在这一章中,我们将更深入地探索CLDCAPI。CLDCAPI实际上只是J2SE的一个子集,它包括java.lang、java.io和java.util,另加一个新软件包--javax.microedition。我们将逐个来研究这些软件包,并突出显示每一个包中的重要的类。
尽管每一个类都在J2SE中,但是没有必要让每一个类的CLDC实现都能实现J2SE支持的所有方法。您可以检查CLDCAPI文档以确认哪些方法是受支持的。文档的副本位于安装J2MECLDC时创建的j2me_cldc/docs目录下。它提供PDF和javadoc两种格式。
*java.lang
CLDCjava.lang软件包是J2SEjava.lang软件包的一个子集。与J2SE相比,它最引人注目的可能便是冗长的浮点操作了,特别是浮点(Float)和双精度(Double)类。如果使用浮点的话,这些冗余将涉及到所有其它的类。
相对于J2SEv1.3API,CLDCAPI中删去了几个其它的类。其中包括ClassLoader、Compiler、InheritableThreadLocal、Number、Package、Process、RuntimePermission、SecurityManager、StrictMath、ThreadGroup、ThreadLocal和Void。
我们描述了可从下面几页表中的CLDCjava.lang软件包中获取的主要的类。Java开发人员对所有这些类的使用都应该是非常熟悉了。
除这些核心类之外,您还将看到CLDC支持的Runnable接口,正象Exception、Error和其它有关的类一样。
*java.lang核心运行时类
java.lang软件包的核心运行时类有:
·Class--显示正在运行的Java应用程序中的类和接口。
·Object--与在J2SE中相同,Object是所有Java对象的基本类。
·Runtime--为Java应用程序提供一种与运行时环境(Java应用程序在其中运行)进行交互的方法。
·System--提供一些静态的帮助方法,就像为J2SE提供方法一样。
·Thread--定义Java程序的一个执行线程。
·Throwable--Java语言中所有错误和异常的超级类。
*java.lang核心数据类型类
java.lang软件包中的核心数据类型类有:
·Boolean--包装boolean原始数据类型。
·Byte—-包装byte原始数据类型。
·Character--包装char原始数据类型。
·Integer--包装int原始数据类型。
·Long--包装long原始数据类型。
·Short--包装short原始数据类型。
*java.lang帮助类
java.lang软件包的帮助类有:
·Math--包含执行基本数学运算的方法。请注意,所有执行浮点值运算的方法都被省略了,仅保留了关于integers和longs的方法:abs()、min()和max()。
·String--在Java中代表对象String,就像在J2SE中一样。
·StringBuffer--代表一个可以修改的串,就像在J2SE中一样。
*java.io输入类
CLDCAPI包含许多J2SE中共同使用的输入类。特别地,CLDCjava.io软件包中包括下面一些类:
·ByteArrayInputStream--包含一个内部缓冲器,它代表可能从输入流中读取的字节。
·DataInput--一个接口,从二进制输入流提供字节以供读取并把它们转换成原始Java数据类型。DataInputStream提供该接口的实现。
·DataInputStream--允许应用程序以独立于平台的方式从基层输入流中读取原始Java数据类型。
·InputStream--一个抽象类,它是所有代表字节输入流的类的超级类。
·InputStreamReader--读取字节并把它们按照指定的字符编码方法转换成字符。
·Reader--一种读取字符流的抽象类。
注意:其中一些类可能不包含J2SE姊妹版支持的所有方法,就像在java.lang软件包中一样。尤其是省略了浮点和双精度方法。
*java.io输出类
CLDCAPI包含了许多J2SE中的共同使用的输出类。特别是,CLDCjava.io软件包中包括下面一些输出类:
·ByteArrayOutputStream--实现一个输出流,在此输出流中数据被写入字节数组。
·DataOutput--一种接口,提供原始Java数据类型以供写入二进制输出流。DataOutputStream提供该接口的实现。
·DataOutputStream--一个输出流,允许应用程序以一种便捷的方式编写原始Java数据类型。
·OutputStream--一个抽象类,它是所有代表字节输出流的类的超级类。
·OutputStreamReader--给出字符,并按指定的字符编码方法将其转换为字节。
·PrintStream--添加一种便捷的方法来打印数据值的文本表现形式。
·Writer--编写字符流的一个抽象类。
其中一些类可能不包含J2SE支持的所有方法,比如浮点和双精度方法。
*java.util收集类
CLDCjava.util软件包中包含J2SEjava.util软件包中最常用的类。这些类中包括四个收集类(实际是三个收集类和一个接口),以及日期/时间和实用程序类。
CLDC支持的java.util收集类有:
·Enumeration--一个接口,通过项目集允许对例程进行重复调用。
·Hashtable--实现hashtable,将键映射到值。
·Stack--代表了一个后进先出(LIFO)的对象集合或堆栈。
·Vector--代表可以调整大小的对象“数组”或者矢量。
*java.util--其它的类
CLDC支持的java.util类中其余部分包括日期和时间类,以及Random实用程序类。下表中简要列出了这些类。
·Calendar--一个抽象类,使用一套整型字段如YEAR、MONTH、DAY等来获取和设置日期。
·Date--代表特定的时间和日期,精确到毫秒级。
·Random--一个实用程序类,用来生成int或long的随机值流。
·TimeZone--代表时区的偏移量,也用于校正时间。
*javax.microedition.io
迄今为止,我们在CLDCAPI中看到的所有的类都是J2SEAPI的子类。CLDC还包含一个附加的软件包--javax.microedition.io。
在这个包里唯一被定义的类就是Connector类,也称为工厂类,包含创建Connection对象或输入、输出流的方法。
当动态识别一个类的名字时,Connection对象就被创建了。类名称的识别基于平台名称和被请求连接的协议。描述目标对象的参数串应该满足RFC2396规范所要求的格式。请使用下列格式:
{scheme}:[{target}][{params}]
{scheme}是一个协议的名称,如http或ftp。{target}通常是一个网络地址,但是面向非网络的协议则可能把它当作一个相当灵活的字段来处理。还有一些参数,如{params}被指定为一系列形如";x=y"的分配形式(例如,;myParam=value)。
*javax.microedition.io帮助接口
除类属连接工厂类之外,javax.microedition.io软件包中还包含下列面向连接的接口:
·Connection--定义了最基本的连接类型。这个接口也是此软件包中所有其它连接接口的基本类。
·ContentConnection--定义了一个可以通过内容的流连接。
·Datagram--定义了一个类属数据报接口。
·DatagramConnection--定义了类属数据报连接和它必须支持的性能。
·InputConnection--定义了一个类属输入流连接和它必须支持的性能。
·OutputConnection--定义了一个类属输出流连接和它必须支持的性能。
·StreamConnection--定义了一个类属流连接和它必须支持的性能。
·StreamConnectionNotifier--定义了一个流连接的通告程序必须具有的性能。