
J2ME
J2ME is a platform, a collection of technologies and specifications that are designed for hand-held devices. J2ME, therefore, is divided into configurations, profiles, and optional packages. Configurations are specifications that set out how the virtual machine and a base set of APIs can be used with a certain class of device. A configuration deals with a specific device. A profile develops on a configuration with more specific APIs to make a complete environment for building applications. An optional package provides functionality that may not be associated with a specific configuration or profile (Bluetooth, for example).
It is interesting to note that the J2ME platform arose from the need to define a computing platform that could accommodate consumer electronics and embedded devices. The J2ME platform delineated these devices into two distinct categories namely Personal mobile information devices and shared-connection information devices.
Configurations and profiles are the two main elements that comprise J2ME' platform. The J2ME configuration defines a minimum Java platform for a number of devices. A configuration also specifies a minimum set of features for a category of devices. The other J2ME element, the profile, specifies the application-level interface for a particular class of devices. A profile implementation consists of a set of Java class libraries that provide this application-level interface. All J2ME applications are in reality Java applications that run under the control of a Java Virtual Machine.