After an overview of Java's history and current SDKs, there's a discussion on writing smaller, faster Java programs requiring less processing, memory and library support--then Giguere turns to J2ME. J2ME uses a small, fast JVM called KVM. The real issues, though, are the limitations of J2ME. Giguere discusses the two J2ME Configurations--hardware definitions for networked devices. These are CLDC, Connected Limited Device Configuration, and CLC, Connected Device Configuration. Above these are Protocols, related to Configurations, which define APIs for related families of devices. A J2ME application runs using a specific Protocol on a specific Configuration.
If the device has a user interface, another set of device specific APIs are required. The first to be formally defined is MIDP--Mobile Information Device Protocol developed by Motorola for mobile phones. This sites above a CLDC Profile. Giguere provides an implementation of noughts and crosses using the J2ME on a variety of devices as a way to put all this into practice. It's interesting to see Java, originally developed for embedded systems, struggling to run on small computing devices. Overall, Java 2 Micro Edition is an informative introduction to the subject. --Steve Patient