Recognizing that "one size doesn't fit all," Sun has regrouped its innovative JavaTM technologies into three editions: Micro (J2METM), Standard (J2SETM), and Enterprise (J2EETM). Each edition is a developer treasure chest of tools and supplies that can be used with a particular product:
Java virtual machines* that fit inside the range of consumer devices a library of APIs that are specialized for each type of device tools for deployment and device configuration a profile, that is, a specification of the minimum set of APIs useful for a particular kind of consumer device (set-top, screenphone, wireless, car, and digital assistant) and a specification of the Java virtual machine functions required to support those APIs J2ME specifically addresses the vast consumer space, which covers the range of extremely tiny commodities such as smart cards or a pager all the way up to the set-top box, an appliance almost as powerful as a computer. Like the other editions, J2ME maintains the qualities that Java technology has become famous for:
built-in consistency across products in terms of running anywhere, any time, over any device portability of the code leveraging of the same Java programming language safe network delivery applications written with J2ME are upwardly scalable to work with J2SE and J2EE With the delivery of J2ME, Sun provides a complete, end-to-end solution for creating state-of-the-art networked products and applications for the consumer and embedded market. J2ME enables device manufacturers, service providers, and content creators to gain a competitive advantage and capitalize on new revenue streams by rapidly and cost-effectively developing and deploying compelling new applications and services to their customers worldwide. The JavaTM 2 Platform, Micro Edition is the edition of the Java 2 platform targeted at consumer electronics and embedded devices. The J2ME technology consists of a virtual machine and a set of APIs suitable for providing tailored runtime environments for consumer and embedded electronics. The J2ME technology has two primary kinds of components--configurations and profiles. The J2ME technology has two design centers--things that you hold in your hand and things you plug into a wall. These design centers have different qualities that are optimized for in the virtual machine and low-level libraries themselves. Configurations are composed of the two low-level APIs and optimized virtual machines targeted at two broad categories of devices: (1) those with 128-512 K of memory available for the Java technology environment (and applications) and (2) those with 512 K + available for the Java technology environment (and applications). Configurations are nestable, so that any software able to execute on a less capable configuration is able to execute on a more capable one.
the benefit of j2me is that once you write your program for specefic configuration and profile than you can be sure that your program will run on any compatible device which supports same configuration and profiles , for example once you write program targeting cldc+midp then this program will run on compatible supporting devices like motorola mid , nokia mid and also on supporting palmtops and on pda as well , if you write program in 'c' , you have to be more system specefic rather than horizontal devices family specefic , onther thing is "anywhere , anydevice" , it means future of system programing is going more towards devices accesing and connected to internet and interconnected , java is better than any other language for developing network centric applications ,so when it comes to downloading application from network for devices and systems java is better than 'c' , when you are targeting "anywhere , anydevice " then you have to go for fully object oriented language like java to improve code reuse as well as performance , also when devices are interconnected and internet connected security is biggest issue ,java provide best security mechanisam for system programming ,there are number of other benefits as well , hope this is enough