No se utiliza J2ME en dispositivos móviles por capricho.
J2ME está especialmente pensado para dispositivos con restricciones severas de memoria y capacidad de proceso.
Por ejemplo MIDP/CLDC tienen por debajo la llamada KVM (Kilo virtual machine) que sólo ocupa unos cuantos kilobytes. No tiene números en coma flotante, el tratamiento de errores es más sencillo, no hay grupos de threads, la API se reduce drásticamente...