【正文】
iances. The development team at Sun worked on Java in the early 1990s to address the programming needs of the fledgling embedded puter market, but that effort was sidetracked by more pelling opportunities presented by the Internet.As those opportunities were addressed, a new breed of portable munications devices opened other opportunities at the turn of the century. Cell phones expanded J 2 M E : T h e C o m p l e t e R e f e r e n c e from voice munications devices to voice and text munications devices. Pocket electronic telephone directories evolved into personal digital assistants. Chipmakers were releasing new products at this time that were designed to transfer puting power from a desktop puter into mobile small puters that controlled gas pumps, cable television boxes, and an assortment of other appliances.The time was right for the next evolution of Java. However, instead of beefing up Java with additional APIs, the team at Sun, along with the Java Community Process Program, dismantled both the Java programming language and the Java Virtual Machine. Theystripped down Java APIs and the JVM to the minimum coding required to provideintelligence to embedded systems and microputer devices. This was necessarybecause of resource constraints imposed upon the hardware design of these devices. Theresult of their efforts is J2ME. J2ME is a reduced version of the Java API and Java Virtual Machine that is designed to operate within the sparse resources available in the new breed of embedded puters and microputers.5 How J2ME Is Organized Traditional puting devices use fairly standard hardware configurations such as a display, keyboard,mouse, and large amounts of memory and permanent storage. However, the new breed of puting devices lacks hardware configuration continuity among devices. Some devices don’t have a display, permanent storage, keyboard, or mouse. And memory availability is inconsistent among small puting devices. The lack of uniform hardware configuration among the small puting devices poses a formidable challenge for the Java Community Process Program, which is charged with developing standards for the JVM and the J2ME for small puting devices. J2ME must service many different kinds of small puting devices, including screenphones, digital settop boxes used for cable television, cell phones, and personal digital assistants. The challenge for the Java Community Process Program is to develop a Java standard that can be implemented on small puting devices that have nonstandardhardware configurations. The Java Community Process Program has used a twofold approach to addressing the needs of small puting devices. First, they defined the Java runtime environment and core classes that operate on each device. This is referred to as the configuration. A configuration defines the Java Virtual Machine for a particular small puting device. There are two configurations, one for handheld devices and the other for plugin devices. Next, the Java Community Process Program defined a profile for categories of small puting devices. A profile consists of classes that enable developers to implement features found on a related group of small puting devices.6 J2ME configurationsThere are two configurations for J2ME as of this writing. These are Connected Limited Device Configuration (CLDC) and the Connected Device Configuration (CDC). The CLDC is designed for 16bit or 32bit small puting devices with limited amounts of memory.CLDC devices usually have between 160KB and 512KB of available memory and are battery powered. They also use an inconsistent, smallbandwidth network wirelessconnection and may not have a user interface. CLDC devices use the KJava VirtualMachine (KVM) implementation, which is a strippeddown version of the JVM. CLDCdevices include pagers, personal digital assistants, cell phones, dedicated terminals, andhandheld consumer devices with between 128KB and 512KB of memory.CDC devices use a 32bit architecture, have at least two megabytes of memoryavailable, and implement a plete functional JVM. CDC devices include digital settop boxes, home appliances, navigation systems, pointofsale terminals, and smart phones.7 J2ME ProfilesA profile consists of Java classes that enable implementation of features for either a particular small puting dev