J2ME的设计应该说是众多顶级工程师的结晶,她被设计的非常灵活。在J2ME中非常重要的两个概念是Configuration和PRofile。Configuration是支持最大范围设备的最小的平台,在这一层还包括了Java虚拟机。Profile是针对特定的设备提供相应的开发包集合。另外针对某些设备特有的功能特性,J2ME还推出了Optional Profile的概念。比如Mobile Media API。
Mobile information Device Profile位于CLDC之上,在CLDC规范制定出来后并没有引起开发者的广泛注重,市场也没有因此而发生变化。原因是CLDC中并没有提供图形用户界面编程的接口,这样应用程序就没有和用户交互的能力了。MIDP1.0的推出受到了开发者的广泛关注,在MIDP1.0中提出了一种新的应用程序模型MIDlet,开发者还可以用MIDP中提供的javax.microedtion.lcdui包开发图形用户界面程序,用MIDP1.0的子系统Record Management System进行数据的持久性操作,借助于CLDC中提供的Generic Connection Framework的联网能力可以通过HTTP协议访问Web服务器,J2ME几乎无所不能。
为了弥补这些不足,SUN在随后的MIDP2.0中推出了MMAPI的一个子集来解决声音处理的不足,并设计了一个独立的游戏开发包javax.microedition.lcdui.game用于游戏开发,还对push、socket联网等特性提供了支持。 在JSR185中更是推出Java Technology for the Wireless Industry使得规范更加严格,提高了应用程序的兼容性。不仅如此,J2ME中的可选包更是各显神通,Bluetooth API,Sip API for J2ME和Mobile 3D Graphics都提供了非常强大的功能。