Java ME (J2ME) is a Java platform for mobile devices and embedded systems. It has two configurations: Connected Limited Device Configuration (CLDC) and Connected Device Configuration (CDC). CLDC contains minimal libraries for basic functionality on memory-limited devices. Profiles like MIDP add user interface and storage capabilities. MIDP, layered on CLDC, is widely used and provides APIs for user interfaces, networking, and local storage. Java ME applications built using profiles like MIDP are called midlets. Midlets can be run on emulators and go through start, pause, and destroy life cycle states.