J2ME is a Java platform for small computing devices like mobile phones and PDAs. It uses a stripped-down Java API and virtual machine called CLDC. The J2ME architecture has three layers - configuration, profile, and MIDP. The configuration defines the JVM, profiles provide features for device classes, and MIDP is the most popular profile for mobile information devices. MIDP applications are called MIDlets, which are packaged in JAR files along with optional JAD descriptor files.